使用Unix命令行模式高效地进行文本编辑

豆豆网   技术应用频道   2007年08月29日  【字号: 收藏本文

内容摘要:大多数 UNIX® 开发人员都选择 Emacs、vi 或这两个文本编辑应用程序的众多变种、分支和克隆之一。操作员通常在所选的文本编辑器中打开文件,并交互式地对文件指定和应用更改。

  > wq

  > EOF

  > }

  $

  您可以在给定字符串之后插入一个文件:

  $ (echo '/END OF PART I/r footnotes.txt'; echo 'wq') | ed file

  删除行

  使用 d 命令来删除文件中的行。与本文讨论的所有命令一样,您可以指定任何类型的有效地址,例如特定的行或行范围。在实践中,此单命令行程序最适合于与至少一个匹配的模式结合使用,例如删除从第一个匹配某模式的行到文件结尾的所有行:

  $ ( echo '/FOOTNOTES/,$/d'; echo 'wq' ) | ed -s file

  也可以按相反方向执行此操作,并删除从该文件的第一行到第一个匹配某模式的行的所有内容:

  $ ( echo '1,/.../d'; echo 'wq' ) | ed -s file

  删除尾随空格

  通过使用 s 命令并替换一个空替换字符,您可以删除尾随空格:

  $ cat -vet input.txt

  This line has trailing blanks. $

  This line does not.$

  $ (echo ',s/ *$//'; echo 'wq') | ed -s input.txt

  $ cat -vet input.txt

  This line has trailing blanks.$

  This line does not.$

  $

  使用 sed 进行编辑

  本文讨论的最复杂和最强大的编辑工具是 sed(流编辑器)。它是一个文本编辑器,但是与诸如 ed 等文本编辑器不同,它编辑输入流并写到输出流。因此,它对于编辑命令输出或对于使用其他工具对文件进行预处理非常有用——然后您可以将该文本通过管道直接输出给 sed,以进行快速编辑。但是 sed 还可以操作文件,并且其脚本语言具有高级模式匹配功能,因此它是用于执行任何类型的快速文本编辑的理想选择——例如对一组文件进行快速搜索和替换。事实上,它是现有用于文本编辑的最流行命令行工具之一。

责编:豆豆技术应用

正在加载评论...