Sed \Awk 的一些用法
2012-11-01 22:04
399 查看
sed 非交互式流编辑器
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。
echo "a,b,c,d" |sed 's/,/\n/g' 列显示
sed 's/^/hello world /g' /etc/passwd #每行开头处添加hello world
sed '1,4d' myfile #删除1到4行数据
sed '/La/d' myfile #删除含有La的数据行 //代表搜索
sed '/[0-9]\{3\}/d' #myfile 把含有3位数的行删除,剩下的显示
sed '/^$/d' myfile #删除myfile的空白行,^表开头,$表尾部
sed '/La/!d' myfile #把不含La的数据行删除
sed -n '/La/p' myfie #把含有La的数据行显示出来,-n只显示符合样式数据行
sed -n 's/La/Oo/gp' myfile #全部把La替换成Oo,并显示
sed -n 's/La//p' myfile #把每一行第一个出现的La删除
sed 's/^...//' myfile #把每一行开头的3个字符删除
sed 's/...$//' myfile #把每一行末尾3个字符删除
sed -n '/root/s/^/#/gp' myfile #注释包含 root 的行
sed '/centos/a \linux is OS' userfile.txt #追加在查找关键词行centos的后面
sed '/centos/i \linux is OS' userfile.txt #插入到查找关键词行centos的前面
sed -e '/centos/c linux is OS' userfile1.txt #用新的文本改变本行的文本
sed '/centos/w userfile2.txt' userfile.txt #查找userfile.txt文件的关键字centos,并追加写入到文件userfile2.txt中
sed '2q' userfile.txt # 显示到第二行就退出
sed -e 's/centos/linux/' -e '2q' userfile.txt #只对文件的前二行就行匹配替换(替换到第二行就退出了)
sed -n 's/\(La\)/\1Oo/p' myfile #把找到的La存起来,用\1取回来再使用
sed -n '/AAA/s/234/567/p' myfile #找到含AAA的那行,将234换成567
sed -n '/AAA/,/DDD/s/B/567/p' myfile #将含有AAA到含有DDD的那几行,将其中的B换成567
sed -n '2,4s/B/567/p' myfile #从第2行到第4行,都将其中的B换成567
echo ' hello world!' |sed 's/^ *//g' #删除行首空格
echo ' hello world!' |sed -n 's/^[[:space:]]*//gp'
echo "hello hello hello" |sed 's/hello/HELLO/2g' 从第二处起开始替换
sed -n '$p' /etc/passwd 打印最后一行
sed -n '1,3 s/root/a-&-b/gp' /etc/passwd & 已匹配字符串标记
awk 文本切割工具
awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk -F: '!/root/' /etc/passwd #取反
awk -F: 'NR!=1{print $1,$3}' /etc/passwd #打印1和3字段,除了第一行
awk -F: '{print NR,$0}' /etc/passwd #打印行号
awk '$3>0 {print $1,$2 * $3}' temp #打印第三字段大于0的
netstat -na |awk '$3==0 && $6=="LISTEN" || NR==1' 过滤条件
ps auxw |awk '{print $2}' #获取系统当前pid列表
awk '/La/' myfile #显示含La的数据行
awk '{print $1,$2}' myfile #显示myfile每一行的第1和第2个字段
awk -F: '/user2/{print $2}' /etc/passwd 打印包含user2的第二列
awk '/La/{print $1,$2}' #将含有La关键词的第1和第2个字段显示
awk -F: '{print $1"\t"$3}' /etc/passwd 制表符分隔
awk -F: '/^user1/{print $3,$4}' /etc/passwd #使用选项-F,指定:为分隔符打印帐号user1的uid、gid
awk -F: 'BEGIN{OFS="+++"}'/^user1/{ print $1,$2,$3,$4,$5 }' /etc/passwd #以:为分隔符,+++为输出字段分隔符,将user1的第1~5栏显示
awk -F: '/root/,/user1/' /etc/passwd #打印root到user1之间的文本
awk 'length>15' /etc/passwd #打印出长度大于15的行
栏显示
ifconfig |grep 'inet addr:' | grep Bcast |awk '{print $2}' |awk -F: '{print $2}' #取得网卡的IP
cat /proc/net/dev |awk -F: '/eth.:|ppp.:|wlan.:/{print $1}' #取得网络设备名称
cat /proc/meminfo |awk '/MemTotal/{print $2}' #取得内存大小
相关文章推荐
- awk, sed的一些简单用法
- GREP、SED、AWK、TR、SORT、UNIQ的一些用法
- GREP、SED、AWK、TR、SORT、UNIQ的一些用法
- linux下grep、awk和sed工具用法概览
- sed 一些用法
- sed,grep,awk以及一些正则
- sed与awk的用法
- 关与 sed && awk 的一些操作小记
- awk一些高级用法
- sed一些用法
- grep sed awk find用法
- grep sed awk find的用法归纳
- 文本处理工具sed及awk的用法
- linux的grep、sed、awk用法
- sed一些参数的用法
- awk的一些用法
- sed和awk用法
- 关于grep,sed,awk的几个用法
- awk grep sed 的一些问题
- grep sed awk find的用法归纳