Linux我用 LinuxLinux学习之路

sed 命令使用总结

2017-08-13  本文已影响30人  学生陈希

1. 简介

sed是非交互式的编辑器。
它不会修改文件,除非使用shell重定向来保存结果。
默认情况下,所有的输出行都被打印到屏幕上。
sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。
具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。
sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。
处理完输入文件的最后一行后,sed便结束运行。
sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

2 常用命令

命令 功能
d 删除行
p 打印行
i 直接编辑源文件
s 用一个字符串替换两一个字符串
g 在行内进行全局替换

3. 实践 -- 替换

3.1 替换字符串

sed -i 's/abc/def/g' text.txt

表示在当前目录下的text.txt文件中,把所有的abc字符串替换为def

3.2 替换带有多个"/"的字符串

sed -i 's:/a/b/c:/d/e/f:g' text.txt

表示在当前目录下的text.txt文件中,把所有的/a/b/c字符串替换为/d/e/f

在替换的时候,不仅仅是"/" 可作为分隔符, 其他字符也可作为分隔符, 只需要前后的分隔符一致即可, 本例中使用“:” 作为分隔符。

3.3 替换 project.pbxproj 文件中的字符串

project.pbxproj 位于 xx.xcodeproj 文件中, 用上述命令来替换其中文件,无法起作用,其原因是因为OSX 需要显示的为它指定其扩展 。正确做法如下:

sed -i '' 's:/a/b/c:/d/e/f:g' project.pbxproj

参考资料链接

上一篇下一篇

猜你喜欢

热点阅读