sed 's/ /\t/g'中的/g是什么意思?

为什么有时候不加/g呢?sed 's/ /\t/g'的输出是把文件里的空格用\t替代,g的作用是什么呢?

sed的替换命令格式:s/A/B/g 或者 s#A#B#g 或者 s_A_B_g#。

只是分隔符而已,为满足格式需要。将所有制表符\t替换为|g表示全局替换,有多少次替换多少次。

s 是替代命令. s/表达式/replacement/

空白用t替代。如果你的unix中 \t表示tab键,则用tab键替代。

g(GLOBAL)的作用从下例可以看出

g -- 全部替代

无g -- 只替代每行第一个。

扩展资料

举例

a.txt内容:

a b c d [a白b白c白d]

e f g h [e白白f白白g白白h]

cat a.txt | sed 's/ /\t/g'

结果为

atbtctt

ettfttgtth

cat a.txt | sed 's/ /\t/'

结果为

atb c d

et f g h

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-02
忘了.凭记忆:
s 是替代命令. s/表答式/replacement/
空白用t替代。如果你的unix中 \t表示tab键,则用tab键替代。
g(GLOBAL)的作用从下例可以看出
g -- 全部替代
无g -- 只替代每行第一个

例如,a.txt内容:
a b c d [a白b白c白d]
e f g h [e白白f白白g白白h]

cat a.txt | sed 's/ /\t/g'
结果为
atbtctd
ettfttgtth

cat a.txt | sed 's/ /\t/'
结果为
atb c d
et f g h本回答被提问者采纳
相似回答