awk、sed、cut、grep

二、sed 【可以理解为 行在线编辑工具】

作用:sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

定址:定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。

例子:

sed '2,5d' datafile
#删除第二到第五行
sed '/My/,/You/d' datafile
#删除包含"My"的行到包含"You"的行之间的行
sed '/My/,10d' datafile
#删除包含"My"的行到第十行的内容
 

 退出状态:sed不向grep一样,不管是否找到指定的模式,它的退出状态都是0。只有当命令存在语法错误时,sed的退出状态才不是0。

1、添加

cat /etc/passwd | sed '2a dring coffee'

在第二行后添加dring conffe。添加多行加一个 \即可

2、删除

cat /etc/passwd | sed '2,$d'

删除第2行到最后一行

3、查找(列出)

cat /etc/passwd |sed -n '2,5p' 

-n 为安静模式,没有将重复输出

4、替换

cat /etc/passwd |sed '2,5c hello,world' 

 正则表达式的替换

语句为: sed 's/要被替换的字符串/新的字符串/g'

/sbin/ifconfig eth0 | grep 'inet addr' |sed 's/^.*addr://g'
/sbin/ifconfig eth0 | grep 'inet addr' |sed 's/^.*addr://g'|sed 's/Bcast.*$//g'

 剔除每一行前面的空格

sed "s/^ *//g"

四、grep

1、-E扩展成正则表达式,筛选出两行

[root@IOT-WXUNI-Furn-B ~]# cat /etc/passwd | grep -E "^(root|zabbix)"
root:x:0:0:root:/root:/bin/bash
zabbix:x:201:201::/home/zabbix:/bin/bash

 

posted @ 2015-03-27 15:05  kin2321  阅读(307)  评论(0编辑  收藏  举报