Chinaunix首页 | 论坛 | 博客
  • 博客访问: 669849
  • 博文数量: 96
  • 博客积分: 2005
  • 博客等级: 上尉
  • 技术积分: 1061
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 13:59
文章分类

全部博文(96)

文章存档

2013年(11)

2012年(30)

2011年(55)

分类: LINUX

2011-08-20 21:13:25

介绍: ed是Linux中面向行的文本编辑器,与sed区别修改过程中不需要创建临时文件,不需要重定向到另一文件中。

测试数据data文件
172.16.5.1 node1 node1.somedomain.com alias1.somedomain.com
172.16.5.2 node2 node2.somedomain.com alias2.somedomain.com
172.16.5.3 node3 node3.somedomain.com alias3.somedomain.com
172.16.5.4 node4 node4.somedomain.com alias4.somedomain.com

1. #全局/search/查找/search/replace/全局(全局替换)
ed -s ./data <
g/newdomain/s/newdomain/somedomain/g
w
q
EOF

2. #/search/查找/search/replace/全局(首条匹配行替换)
ed -s ./data <
/somedomain/s/somedomain/newdomain/g
w
q
EOF

3. #/search/查找/search/replace/(匹配行首个替换)
ed -s ./data <
/somedomain/s/somedomain/newdomain/
w
q
EOF

4. #/search/查找/search/replace/(所有匹配行行替换)
ed -s ./data <
g/172.16.5.2/s/somedomain/newdomain/g
w
q
EOF
#/search/查找/search/replace/(符合正则条件首行替换)
ed -s ./data <
g/^172.16.5/s/somedomain/newdomain/g
w
q
EOF

5. #/search/i/文本/.(在node1匹配行前插入行)
ed -s ./data <
/node1
i
172.16.5.4 node4 node4.newdomain.com alias4.newdomain.com
.
w
q
EOF

6. #/search/i/文本/.(在后追加行)
ed -s ./data <
/node2
a
172.16.5.4 node4 node4.newdomain.com alias4.newdomain.com
.
w
q
EOF

7. #/search/d(删除行)
ed -s ./data <
/node2
d
w
q
EOF

8.利用ed进行字符转义。
#!/bin/bash
usage="Usage: $0  "
if [ $# -eq 0 ]
then
        echo $usage
fi
if [ ! -f $1 ]
then 
        echo "$1 does not exist"
        echo $usage
        exit 1
else
        file=$1
fi
ed -s $file<
g/[\]/s/[\]/\\\\\\\/g
g/&/s/&/\\\&/g
g/!/s/!/\\\!/g
g/@/s/@/\\\@/g
g/#/s/#/\\\#/g
g/%/s/%/\\\%/g
g/,/s/,/\\\,/g
g/[$]/s/[$]/\\\\$/g
g/[&]/s/[&]/\\\\&/g
g/[*]/s/[*]/\\\\*/g
g/\\;/s/\\;/\\\;/g
g/\\:/s/\\:/\\\:/g
g/\\[/s/\\[/\\\[/g
g/\\]/s/\\]/\\\]/g
g/\\^/s/\\^/\\\^/g
g/\\;/s/\\;/\\\;/g
g/\\;/s/\\;/\\\;/g
g/[/]/s/[/]/\\\\//g
g/[(]/s/[(]/\\\(/g
g/[)]/s/[)]/\\\)/g
g/[+]/s/[+]/\\\+/g
g/[=]/s/[=]/\\\=/g
g/[{]/s/[{]/\\\{/g
g/[}]/s/[}]/\\\}/g
g/[]]/s/[]]/\\\}/g
g/[|]/s/[|]/\\\|/g
g/[']/s/[']/\\\'/g
g/["]/s/["]/\\\"/g
g/[<]/s/[<]/\\\
g/[>]/s/[>]/\\\>/g
g/[?]/s/[?]/\\\?/g
g/[~]/s/[~]/\\\~/g
g/[-]/s/[-]/\\\-/g
g/[_]/s/[_]/ \\\_/g
w
q
EOF
阅读(3518) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~