你可以用
sed命令像文本处理器的查找替换功能一样,用一个字符串替换文件中的某个字符串。
sed命令还可以从文件中删除连续的行。因为
sed是一个流编辑器,它把给定的文件作为输入,将输出打印到屏幕,除非将输出重定向到一个文件。换句话说,
sed不改变输入文件。
sed命令的一个形式如下: 替换:sed "s/
//g" 删除:sed ",d" 我们先看下替换的例子。如果想把文件poem.txt中出现的所有lamb替换成ham,命令如下: cat poem.txt Mary had a little lamb Mary fried a lot of spam Jack ate a Spam sandwich Jill had a lamb spamwich sed "s/lamb/ham/g" poem.txt Mary had a little ham Mary fried a lot of spam Jack ate a Spam sandwich Jill had a ham spamwich 在单引号引起来的字符串中,"s"表示替换(substitute),"g"表示全局(global)替换。也可以去掉"g"(只替换每行第一次出现的字符串)或者指定一个数字(替换每行的前n次出现)。 现在看一个保护删除行的例子。start和end的值既可以是行号也可以是用以匹配的模式。从start到end的所有行都从输出中移除。这个例子会删除从第2行开始,到并包含第3行的内容: sed "2,3d" poem.txt Mary had a little lamb Jill had a lamb spamwich 这个例子会删除从第1行开始,到包含Jack的哪一行的内容: sed "1,/Jack/d" poem.txt Jill had a lamb spamwich sed命令的最常见用法是将一个文本字符串换成另一个文本字符串。事实上,sed用来查找和删除的字符串是正则表达式。这意味可以像grep那样使用模式匹配。虽然可能从来不会这么用,这里还是给出一个例子。将任何在行尾出现的lamb换成ham,并将结果存放在一个新文件中: sed "s/lamb$/ham/g" poem.txt > new.file 因为将输出重定向到了一个文件,sed没有在屏幕上打印任何东西。查看新文件new.file,得到下面几行: cat new.file Mary had a little ham Mary fried a lot of spam Jack ate a Spam sandwich Jill had a lamb spamwich 使用man sed命令来获取sed的更多信息。如何挂载只读的Linux文件系统Vi的工作模式相关资讯 Linux命令 - 48 字节命令可令 Linux 系统当机! (今 07:55)
- 在Linux笔记本上执行这句命令能致 (02月02日)
- .NET开发必会的Linux命令 (12/20/2015 10:32:03)
| - 运维工程师必会的109个Linux命令 (03月09日)
- 有趣的Linux命令行:随机输出唐诗 (12/28/2015 20:14:23)
- 10 个 Linux 中的 passwd 命令示例 (10/29/2015 10:14:30)
|
本文评论 查看全部评论 (0)