sed -e 's/旧模式/新模式/标志' file s是substitute, 两个最有用的标志分别是g和n。 g是globally,表示要替代每一行中所出现的全部模式。(无g只换每行的头一个) n告诉sed只替代前n行中所出现的模式。
e.g.
1 2 3 4
grep CLERK emp.fmt | sed -e 's/ /;/g;s/CLERK/ASSISTANT MANAGER/g' 1. grep将所有带CLERK的行找出; 2. sed 将所有的空格(分隔符)都转换成分号(;); 3. sed 将所有的CLERK字符串都替换成ASSISTANT MANAGER;
删除某行:
1 2 3 4 5 6 7 8 9 10
$ sed 'nd' file 在显示结果中删除第n行 $ sed 'm,nd' file 在显示结果中删除第m到n行 $ sed '/str/d' file 删除所有带str的行 $ sed '/^$/d' file 删除所有空行 # re("^$") means a line without any word.(只有开始符^和结尾符$的行) $ sed '1,/str/d' file 删除从第1行开始直到包含有str的数据行(包括有str的那行)
e.g.
1 2 3 4 5 6 7 8
(1)电子邮件和一些应用程序显示的每一行信息都是以>开始的,使用下面的一条sed命令来做到这一点: $ sed '/^$/d;s/^/> /g' source >result 第1个命令表达式/^$/d表示要删除所有的空行, 第2个命令表达式s/^/>/表示将开始符号替换成大于符号和空格符, 最后的>result表示将sed命令的结果存入result文件。 ------------------------------------------------------------------------------------------ (2)在删除所有空行的同时,删除所有包含了“cal“的行,并将所有的字符串“tie“变成“fox“,将结果保存: $ sed '/^$/d;/cal/d;s/tie/fox/g' source >result