工作必备之正则匹配、grep、sed、awk

常用正则:
匹配空行:^\s*\n

匹配www开头:^www

添加行号:awk '$0=""NR". "$0' /etc/yum.conf

 

 1.所有域名前加www.
sed -e "/^$/d" -e 's/^/www./g' file

2.分组调换
echo aaa BBB | sed 's/\([a-z]\+\) \([A-Z]\+\)/\2 \1/'

BBB   aaa

3.awk的格式化输出
awk -F: 'BEGIN{printf "%-10s\t %s\n","用户名称","用户ID"} {printf "%-10s\t %s\n",$1,$3}' /etc/passwd


4.当使用 {x,y} 这种次数匹配的正则表达式时,需要配合--posix选项或者--re-interval选项。
awk '/he{2,3}llo/{print $0}' test.txt        ====>错误

awk --posix  '/he{2,3}llo/{print $0}' test.txt
或者
awk --re-interval  '/he{2,3}llo/{print $0}' test.txt

5.匹配test.txt中第一次出现Lee至第一次出现Kevin范围内的打印出来
awk '/Lee/,/Kevin/{print $0}' test.txt

6.打印第三行至第7行的内容
awk 'NR>=3 && NR<=6' {print $0} test.txt

7.利用awk对空数组赋值为0的特性,统计出ip.txt里面每个IP出现的次数
ip.txt的内容如下:
192.168.1.1
192.168.1.2
192.168.1.1
192.168.1.100
192.168.1.2

awk '{ count[$1]++ } END{for (i in count){print i,count[i]} }'  ip.txt



最终打印的结果为:
192.168.1.1    2
192.168.1.2    2
192.168.1.100    1

转载于:https://www.cnblogs.com/steven9898/p/11324322.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值