如何将类似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所有行打印出来并显示相应行的行号
类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命令前的逗号表示所有行都进行替换)
- 如何将类似UNIX系统中的ed编辑器命令脚本化
- shell脚本 dos文件转unix 类似dos2unix命令
- Unix系统 vi编辑器 命令使用
- oracle中用ed命令打开自定义编辑器
- 如何实现类似CAD的命令系统
- 书写优雅的shell脚本(插曲)- ed编辑器
- linux -- 如何将系统命令或脚本的输出同时输出到屏幕和文件呢
- UNIX/Linux 下命令和脚本中的特殊符号
- ed编辑器--适用于shell脚本内编辑文件的最最简单编辑器
- ed编辑器的使用
- 编辑器ed介绍
- ed(red)编辑器
- Linux文本编辑器ed
- ed编辑器使用
- unix下的编辑器ed帮助手册和正则表达式的学习
- Unix vi编辑器命令总结
- UNIX系统操作命令
- UNIX系统操作命令
- 【Machine Learning实验3】SoftMax regression
- git详细介绍
- 关于SaaS的一点理解
- ejb 学习:遇到错误:LazyInitializationException.<init> : failed to lazily initialize a collection of role:
- 第一贴,空间搬家了,祝贺。。。
- 如何将类似UNIX系统中的ed编辑器命令脚本化
- VC类中DECLARE_MESSAGE_MAP()有什么含义
- 数据在各程发送的过程
- Hibernate中对象的状态
- 116. Don't claim to know what you don't know. 不要不懂装懂
- C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
- Hibernate的三种状态
- uboot change based on DM368, for BDI3000 bootup
- 在WinCE下编译sqlite3生成动态链接库 .