去除文中空格
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:]]* 匹配一个或多个连续的空白字符,g 表示替换所有匹配到的空白字符(而不仅仅是第一个)。
所以,该命令会将出现的每个空白字符替换成一个 : 符号,多个连续出现的空白字符也会被替换成一个 : 符号。
例如,假设 filename 文件中某一行的内容如下:
Hello world!
运行上述 sed 命令后,该行将被替换为:
Hello:world!
这是因为文本中的两个空格被替换成了一个 : 符号。