Linux sed命令菜鸟入门
Linux sed命令菜鸟入门
本文首先以一个简单的sed命令应用示例,说明如何使用sed命令进行文本处理,接着从sed命令的用法、工作原理、行地址模式以及sed命令支持的脚本命令详细介绍sed命令的用法。
一个完整的sed命令使用简单示例
现在有一个待处理文件test.txt,文件中包含一系列的位图数据1和0,它们位于<Figure Begin>和<Figure End>之间,需要将它们写入一个单独的文件,并使用.FG <insert figure here> .FE替换着部分内容。替换输入文件中的<para> 标识为.LP并删除其下的空行。最后,删除输入文件中的所有空行。
处理文件内容如下:cat test.txt
- <para>
- This is a test paragraph.
- <Figure Begin>
- 111111111111111101000000000000000000000000000000111111111111111111100000000
- 000000000000000000000000000000000001111111111111111111111111111111111111111
- 11111111111111111110000000000000000000
- <Figure End>
- <para>
- MOre lines of text to be found after the figure.
- These lines should print.
sed脚本命令内容及解释如下:cat sedscr
- /<para>/{
- N #读入下一行,因为下一行为空行,
- c\ #使用下面的内容替换模式空间中的内容,之所以使用N命令,也是想把<para>下面的空行删除
- .LP
- }
- /<Figure Begin>/,/<Figure End>/{ #匹配<Figure Begin>到<Figure End>行之间的内容
- w fig.test #将这部分中的当前模式空间中的内容写入文件fig.test中,因为sed命令式按行读取文件内容的
- /<Figure End>/i\ #在<Figure End>行前插入下面的内容
- .FG\
- <inset figure here>\
- .FE
- d #删除匹配的行,即删除模式空间中的内容,这样模式空间中的这部分内容不会被输出
- }
- /^$/d #删除所有空行
sed脚本执行命令:sed -f sedscr test.txt
sed脚本执行完成后输出内容如下:
- .LP
- This is a test paragraph.
- .FG
- <inset figure here>
- .FE
- .LP
- MOre lines of text to be found after the figure.
- These lines should print.
上面简单演示了一个使用sed命令的实际例子,初学时看不懂没有关系,只需知道大概是这么个流程,然后下面会详细的解释sed命令的用法。
|
评论暂时关闭