sed替换常用命令

去除文中空格

sed "s/ //g" filename

替换整行

把“GRUB=”开头的那行替换为“shyn=0”

sed "/^GRUB=*/c\shyn=0" filename

将第一行内容替换为“shyn=0”

sed '1c shyn=0' filename

将文件 filename 中的每一行内容替换为“hello world”

sed -i 's/.*/hello world/' filename

  • 请注意,这个命令将文件的每一行都替换为相同的内容。如果只想替换某些行的内容,可以使用其他的正则表达式或者多个 sed 命令来实现。

替换tab和空格

1、将tab替换为“:”符号

sed -i "s/\t/:/g" filename

  • -i 参数表示直接修改原始文件。如果想要生成一个新的文件,可以将该参数省略,并将输出保存到新文件中。

2、将tab和空格替换为“:”符号(方法一)

sed -i 's/[ \t]\+/:/g' filename

  • 's/[ \t]\+/:/g' 表达式表示将每一行中的所有连续的空格或 tab 字符替换为一个 : 符号。其中,正则表达式 [\t]\+ 表示一个或多个连续的空格或 tab 字符, : 符号是要替换成的字符串。
  • 请注意:如果想仅将空格或 tab 替换为 : 符号,可以将上述表达式中的 [ \t] 分别替换为   和 \t。

3、将tab和空格替换为“:”符号(方法二)

sed -i 's/[[:space:]]\+/:/g' filename

  • 除了使用 [ \t] 表示空格和 Tab 字符以外,还可以使用 [[:space:]] 表示空白字符(包括空格、Tab、换行符等)。使用 [[:space:]] 可以更加准确地匹配所有空白字符,而不仅限于空格和 Tab。
  • 's/[[:space:]]\+/:/g' 表达式表示将每一行中的所有连续的空白字符替换为一个 : 符号。其中,正则表达式[[:space:]]\+ 表示一个或多个连续的空白字符(包括空格、Tab、换行符等), : 符号是要替换成的字符串。

4、将tab和空格替换为“:”符号(方法三)

sed -i 's/[[:space:]][[:space:]]*/:/g' filename

  • [[:space:]] 匹配空白字符,[[:space:]][[:space:]]匹配一个或多个连续的空白字符,表示替换所有匹配到的空白字符(而不仅仅是第一个)。

所以,该命令会将出现的每个空白字符替换成一个 : 符号,多个连续出现的空白字符也会被替换成一个 : 符号。

例如,假设 filename 文件中某一行的内容如下:

Hello     world!

运行上述 sed 命令后,该行将被替换为:

Hello:world!

这是因为文本中的两个空格被替换成了一个 : 符号。

 

 

 

你可能感兴趣的:(Linux基础,linux)