使用Unix命令行模式高效地进行文本编辑
http://tech.ddvip.com 2007年08月29日 社区交流
内容摘要:大多数 UNIX® 开发人员都选择 Emacs、vi 或这两个文本编辑应用程序的众多变种、分支和克隆之一。操作员通常在所选的文本编辑器中打开文件,并交互式地对文件指定和应用更改。
d 命令删除给定的行。您可以在它前面附加行号、范围、要匹配或包括在斜杠中的模式。
若要删除文件中的第一行,可以使用以下命令:
$ sed -i 1d file
若要删除第 1 至第 10 行,可以使用以下命令:
$ sed -i 1,10d file
若要删除“BEGIN QUOTE”字符串的第一个实例到“END QUOTE”字符串的第一个实例之间的所有行,可以使用以下命令:
$ sed -i '/BEGIN QUOTE/,/END QUOTE/d' file
若要删除当前目录中扩展名为 .xml 的所有文件中第一行包含“”并且最后一行包含“""”的所有文本部分,可以使用以下命令:
$ sed -i '//,/</record>/d' *.xml
若要删除从第一行直到第一个空白行的所有内容,可以使用以下命令:
$ sed -i '/^> /d' file
(当在电子邮件消息或 Usenet 文章中使用时,前述单命令行程序将除去所有标头。)
若要删除所有以电子邮件样式引用开头的行,可以使用以下命令:
$ sed -i /^$/d file
若要删除文件的最后一行,可以使用以下命令:
$ sed -i '$d' file
删除尾随空格
如果文件中的行包含需要清除的尾随空格字符,在文本编辑器中人工查找并删除它们会非常麻烦,但是使用 sed 完成此任务将成为一个快速的单行操作。您可以搜索行尾之前出现一次或多次的字面空格字符,并将其替换为空字符:
$ cat -vet input.txt
This line has trailing blanks. $
This line does not.$
$ sed -i 's/ *$//' input.txt
$ cat -vet input.txt
This line has trailing blanks.$
This line does not.$
$
总结
通过从 UNIX 命令行运行单命令行程序,可以利用多种有意义和复合的方式(无需编辑器)对文本文件进行编辑。您这样做有许多很好的理由:为了提高速度和方便性,在无法或不适合使用交互式编辑的情况下可编写脚本,有时为了对单个文件或一组文件执行复杂编辑,这些编辑操作难于甚至无法在交互式应用程序中完成。本文使用三个普遍存在的编辑工具,通过许多简单文本编辑单命令行程序阐述了这一概念:cat、ed 和 sed。
责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……