linux awk和sed

awk用法

awk [ -F ':']  '{pattern+action}' 以:为分隔符(默认是空格)

cat  /etc/passwd |awk -F ':'  'BEGIN {print "name,shell"} {print $1","$7"} END {print "blue,/bin/nosh"}'  显示passwd文件的用户名和shell,并给它们起列名name,shell,并且在后面添加blue,/bin/nosh,如果不需要列名,就直接cat  /etc/passwd | awk -F ':'  '{print $1","$7}'

awk -F : '/root/' /etc/passwd 搜索有root的所有行

awk -F :  '/root/{print $7}' /etc/passwd打印出$7的shell值

awk '{count++;print $0;}END{print "user count is " count}' 根据passwd文件统计用多少用户,END代表最后执行的,如果去掉的话会没打印一个用户就打印一条统计语句

类似:ls -l |awk 'BEGIN {size=0;} {size=size+$5} END {print "[end]size is ",size}'统计该文件夹内的文件总共占用多少内存,$5是文件占用大小

 



sed 用法

sed [-nefr] [action]

-i 直接修改文件内容,而不是像其他命令那样只是输出到终端

a新增c取代d删除i插入p列印常与sed -n 使用s取代

nl  ——类似cat,只是在前面多打印行号

nl /etc/passwd |sed '2,5d'删除2至5行后显示在终端,‘2d’,'3,$d'类推

nl /etc/passwd |sed '2a drink tea'在第二行后面添加drink tea,其它命令类推

nl /etc/passwd | sed -n '5,7p'显示第5至第7行

nl /etc/passwd | sed -n  '/root/p'搜索关键字root的行,把p改为d,则为删除该行

nl /etc/passwd | sed -n '/root/{$/bash/blueshell/;p}' 找到root所在的行后,把bash修改为blueshell,花括号里面的是一组命令

nl /etc/passwd |sed -e '3,$d' -e 's/bash/blueshell/' ( -e多点编辑)第一个是删除第三行到末尾,后面的是修改bash为blueshell
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值