如何将类似UNIX系统中的ed编辑器命令脚本化

来源:互联网 发布:蓝凌软件好用吗 编辑:程序博客网 时间:2024/06/05 11:16
背景:
类UNIX系统的编辑器有很多,比如vi,emacs等 ,这些编辑器功能非常强大。而ed是行编辑器,也就是说每次编辑都是以行为单位。个人认为ed编辑器功能虽然不如vi等强大,但是命令好记,功能简单足够。假如需要对许多文件做相同的编辑操作,如果逐个打开文件,然后输入一堆相同的命令,这势必降低工作效率,这种情况可以通过将ed编辑器命令保存在脚本文件中,然后批量执行此命令即可。

批量执行ed编辑器脚本(exec_ed_script.sh):
#
# 用法:exec_ed_script.sh [ed_script.ed] [file]
# 其中ed_script.ed为ed编辑器命令脚本, file为待编辑文件
#

#!/bin/bash
if [ ! -f $1 ]; then
  echo "file $1 is not exist!"
fi

if [ ! -f $2 ]; then
  echo "file $2 is not exist!"
fi

ed $2 <<EOF
$(cat $1)
EOF

ed编辑器常用命令:
,       (逗号)表示第1行到最后一行
;       (分号)表示当前行到最后一行
.       (点号)退出编辑模式,进入命令模式
$       表示最后一行
a       在当前行后追加文本
i       在当前行之前插入文本
c       修改当前行
n       打印显示行号及行内容
p       显示行内容

ed编辑器例子:

,n      在屏幕上显示所有行号及内容
;n      显示当前行至末尾行的行号及内容
=       显示总行数
g/content_searched/n       将包含content_searched所有行打印出来并显示相应行的行号

,s/content_searched/content_replaced/g        用content_replaced替换所有content_searched(注:s命令前的逗号表示所有行都进行替换)



原创粉丝点击