sed命令的使用
2012-04-21 14:45
316 查看
你可以用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公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-04/58860.htm
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公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-04/58860.htm
相关文章推荐
- find,sed命令的使用
- linux中sed命令和awk命令的使用
- 在shell中使用sed命令替换/为\/
- sed 使用命令
- sed命令的使用和说明
- Linux中使用sed命令替换字符串小结
- sed命令简介及在sed命令中使用变量的方法
- rpm与yum,at与crontab,sed命令使用
- sed命令的使用
- Sed命令的使用详细解释
- linux使用sed命令
- sed命令简单使用-不写D,那么默认执行d
- sed命令使用详解(下篇)
- sed 命令使用
- grep、sed、awk命令使用参数说明
- sed命令使用详解归纳
- sed命令简单使用
- sed命令使用详解
- sed 命令的使用及shell判断语句
- Ubuntu下使用sed命令处理文本