Linux 为什么sed命令中g关键字前有两个正斜杠?
有关以下代码:Linux 为什么sed命令中g关键字前有两个正斜杠?,linux,bash,shell,unix,sh,Linux,Bash,Shell,Unix,Sh,有关以下代码: sed "s/ //g" filename 既然这是用来删除空格的,为什么在“g”前面有两个正斜杠呢。原因可能是什么。虽然它工作正常。每个斜杠都是一个标记,但它们之间什么都没有。例如,如果要用下划线替换空格,可以在第二个和第三个斜杠之间放置下划线: sed "s/ /_/g" filename 运行示例: $ echo "foo bar" | sed "s/ /_/g" foo_bar $ echo "foo bar" | sed "s/ //g" foobar 我建议你先
sed "s/ //g" filename
既然这是用来删除空格的,为什么在“g”前面有两个正斜杠呢。原因可能是什么。虽然它工作正常。每个斜杠都是一个标记,但它们之间什么都没有。例如,如果要用下划线替换空格,可以在第二个和第三个斜杠之间放置下划线:
sed "s/ /_/g" filename
运行示例:
$ echo "foo bar" | sed "s/ /_/g"
foo_bar
$ echo "foo bar" | sed "s/ //g"
foobar
我建议你先读一些关于sed的书
长话短说,使用此示例sed“s/search\u pattern/replace\u string/g”文件名
:
表示搜索和替换s
是要搜索的模式search\u pattern
是要替换的字符串replace\u string
意味着全局应用操作,这意味着保留对所有匹配模式的搜索和替换g
因此,
sed“s///g”filename
意味着搜索文件中的所有空格,并将其替换为空字符串它全局地将行中的空格替换为零-有效地删除了所有空格。操作或命令是s/../../
(替换)命令;g
是一个修饰符(意思是在找到每个模式后重复搜索,从替换文本的末尾开始)。搜索模式(空白)介于第一个和第二个斜线之间;替换模式(空字符串)介于第二个和第三个斜杠之间。tr-d'
也是一个选项。