shell三剑客之sed(一)-创新互联
引言
成都网络公司-成都网站建设公司创新互联公司十余年经验成就非凡,专业从事网站设计、网站制作,成都网页设计,成都网页制作,软文营销,1元广告等。十余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18982081108,我们期待您的来电!
我们不生产水,我们只是大自然的搬运工。
我不是在做广告,我只是整理sed的时候突然想起了这句话。因为我接下来几乎就是个搬运工了。没办法,前人总结的实在是太精辟了。思路清晰,一气呵成。我浏览了下,就让我有种感慨,sed也就这么点东西。说大话了,请忽略。
总之一句话,这篇纯手打,你也可以说是抄的,我承认,但是能把他变成自己的怎么都成!要站在别人的肩膀上,才能看的更远。废话不多说,上干货。
参考资料
man sed 或者 sed --help
《unix shell 范例精解》
http://www.gnu.org/software/sed/
sed,a stream editor
上面是GRU官方文档的标题:sed,一个流编辑器,非交互式的编辑器。
sed的工作过程
文本文件--->sed的模式空间(缓存区)--->显示输出
sed逐行处理文件(或输入),将当前处理的行放在sed模式空间里,在模式空间里处理完后显示输出,并删除模式空间里的内容。然后将下一行读入模式空间,处理并输出。
我们发现,sed处理的是读入模式空间里的文件副本,不是原文件。所以使用sed编辑文件不会对原文件修改和破坏。
sed的工作模式
正则表达式 | sed -n '/RE/p' filename |
定址 | 地址可以是数字,正则表达式或者二者结合。 |
正则表达式元字符
通用 | http://1076546426.blog.51cto.com/9959876/1702784 |
& | 保存查找串以便在替换串中引用 |
sed命令与选项
命令 | 功能 | 命令 | 功能 |
a\ | 在当前行之后追加文本 | ||
i\ | 在当前行之前插入文本 | ||
r | Append text read from filename.(从文件中读入并追加文本) | ||
c\ | 用新文本替换当前行中的文本 | ||
d | 删除行 | ||
h/H | Copy/append pattern space to hold space. 将模式空间的内容复制/追加到暂存缓冲区。 | ||
g/G | Copy/append hold space to pattern space. | ||
x | Exchange the contents of the hold and pattern spaces. | ||
l | 列出非打印字符 | ||
n/N | Read/append the next line of input into the pattern space. | ||
p | Print the current pattern space. | ||
s###g | 全局替换,#为间隔符 | ||
w | Write the current pattern space to filename. | ||
y | y/source/dest/ 将字符串转换为另一个字符 | ||
选项 | 功能 |
-n | 取消默认输出 |
-e | 允许多项编辑 |
-f | 指定sed脚本文件 |
-i | 修改原文件 |
-r | use extended regular expressions in the script. |
实例
命令 | 功能 |
sed -n '/word/p' filename | 将filename中所有包含word的行打印的屏幕上 |
sed '1,3d' file1 >file2 | 删除file1中1到3行,并将修改结果保存到file2中 |
sed -n '1,5p' filename | 只打印1到5行 |
sed '1,10s#my#your#g' filename | 将1至10行中的所有的my替换为your |
sed '/my/!d' filename | 删除所有不含my的行 |
sed '/reports/s/5/8' filename | 将含有reports行的第一个数字5改为8 |
sed 's/....//' filename | 删除每行的前4个字符 |
sed 's/....$//' filename | 删除每行的后4个字符 |
sed -n '/word/w file2' flie1 | 将file1中所有包含word的行写入file2中 |
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文标题:shell三剑客之sed(一)-创新互联
网站地址:http://pwwzsj.com/article/idiip.html