sed
- sed 是非交互式的编辑器。它不会修改文件,除非使用 shell 重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。
sed 编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:
- 首先 sed 把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),
- 然后处理临时缓冲区中的行,
- 完成后把该行发送到屏幕上。
sed 每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed 便结束运行. sed 把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
如果要修改原文件,可使用-i 选项。
示例
1. 将文本内容列出并打印行号,删除某些行
|
|
其中,’2,5d’ 表示 2~5 行,d 表示删除。
删除第三行到最后一行, $定位到最后一行:
|
|
在原文件中删除第 1 行:
|
|
2. a表示在行后加上字符串,i表示在行前添加字符串
在第二行后添加 test 字符串:
|
|
在第二行前添加 test 字符串:
|
|
在第二行后加入两行 test,“\n”表示换行符:
|
|
3. 将 2-5 行内容取代为 No 2-5 number
c 为替换内容选项。
|
|
4. 列出 regular_express.txt 内第 5-7 行
sed 命令中-n 为安静模式选项:
|
|
5. 替换字符串
sed ‘s/被替换字符串/新字符串/g’