1.使用s命令用新文本替换某一行中的文本:
[olz@jieoulinux ~]$ echo "This is a test" | sed 's/test/practice/'
This is a practice
用practice替换test。注意:红色标注的“/”一定要有,否则产生错误。
2.替换标记
当我们使用s命令来执行替换操作时,s命令默认之会替换每一行中首次出现的匹配文本,要替换所有的匹配文本
我们可以使用替换标记,替换标记放在替换的文本之后,
s/var1/var2/flages
其中可以使用4种标记:
数字:表示要替换第几个匹配文本。
g:替换所有匹配文本
p:打印包含匹配文本的那一行,经常与-n连用,然后使命令只打印已被替换的行。
(注:-n用于禁止sed编辑器的输出)
w file: 将替换的文本写入文件file
3.替换字符
在文本字符串中,我们可能会遇到不容易在替换模式中使用的字符,例如我们最常见的正斜杠,正斜杠经常用作
路径分隔符,要替换它可能很困难,见下面的例子:
将/etc/passwd中的bash shell 替换为Kshell,我们这样做:
[olz@jieoulinux ~]$ sed 's/\/bin\/bash/\/bin\/ksh/' /etc/passwd
我们必须用反斜杠将正斜杠转义,否则会导致错误。
比较友好的是sed允许我们为替换的字符串界定符选择一个不同的字符:
[olz@jieoulinux ~]$ sed 's!/bin/bash!/bin/ksh!' /etc/passwd
感叹号被用作字符串界定符。
阅读(1060) | 评论(0) | 转发(0) |