sed可以替换给给定文本中的字符穿,利用正则表达式进行匹配
$ sed's/pattern/replace_string/'file
OR
$ catfile|sed's/pattern/replace_string/'file
使用-i选项,可以将替换结果应用与源文件,或者记住重定向保存文件
$ sed's/text/replace/'file> newfile
$ mv newfile file
OR
$ sed -i 's/text/replace/'file
每一行第一处符合样式的内容替换掉,如果要替换所有内容,需要在命令尾部加上参数g
$ sed's/pattern/replace_string/g'file
需要从第N处匹配开始替换是,可以使用/Ng
$ echo this thisthisthis |sed's/this/THIS/3g'
thisthisTHISTHIS
字符/在sed中作为界定符使用,也可以使用任意的定界符
sed ‘s:text:replace:g'
sed 's|text|replace|g'
定界符出现在样式内部时,必须用前缀转义
sed 's|te\|xt|replace|g'
移除空白行
$ sed '/^$/d' file /pattern/d会移除匹配样式的行 空白行中,行尾标记紧随者行首标记
已匹配字符串标记&
在sed中用&标记匹配样式的字符串,在替换字符串时使用以匹配的内容
$ echo this is an sample1 | sed 's/\w\+/[&]/g'
\w\+匹配每一个单词,用[&]替换
子串匹配标记\1
$ echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'
this is 7 in a number
$ echo seven ETGHT | sed 's/\{[a-z]\+\} \{[A-Z]\+\}/\2 \1'
ETGHT seven
组合多个表达式
利用管道组多个sed命令
sed 'expression' | sed 'expression'
等价于
$ sed 'expression;expression'
引用
sed表达式一般用单引号引用,不过也可以使用双引号,双引号会通过对表达式求值再对其进行扩展
$ text= hello
$ echo hello world |sed"s/$text/HELLO/"
HELLO world
sed入门 sed可以替换给给定文本中的字符穿,利用正则表达式进行匹配 $ sed 's/pattern/replace_string/' file OR $ cat file | sed 's/pattern/replace_string/'file 使用-i选项,可以将替换结果应用与源文件,或者记住重定向保存文件 $ sed 's/text/replace/' file > newfile $ mv newfile file OR $ sed -i 's/text/rep