百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> 通过几个案例解说linux下的awk下令-linux运维
分享文章到:

通过几个案例解说linux下的awk下令-linux运维

发布时间:10/01 来源:未知 浏览: 关键词:
shell编程三剑客里,awk比别的两个下令grep、sed更加复杂,更加难以把握,由于awk是可以作为一个编程说话的!难归难,但该下令是必需要把握的下令,由于它的功能实在太强大了! shell编程三剑客里,awk比别的两个下令grep、sed更加复杂,更加难以把握,由于awk是可以作为一个编程说话的!难归难,但该下令是必需要把握的下令,由于它的功能实在太强大了!

awk根本构造如下:

awk [选项] 'pattern1 {action1} patten2 {action2} ……' filename
  • 单引号是为了和shell下令区分开来。

  • 大括号表示一个下令分组。可以是一个行动,或多个行动,要是是多个行动,则行动之间需要加上;或输入enter键

  • pattern是模式,表示匹配到的行才进行action。模式可以是正则,或算术表达式等

  • pattern和action可以只要其一,但不克不及两者都没有

awk常用的选项如下:

  • -F:指定分割符,分割符可以是字符也可以是一个正则表达式

  • -v val=value,定义一个变量并赋值

下面,我来通过一个利用来解说awk下令的运用。下面是一个文本文件的局部内容

# head city.txt 
北京 BEIJING BJ

上海 SHANGHAI SH

天津 TIANJIN TJ

重庆 CHONGQING ZQ

阿克苏 AKESU AKS

……

此刻的需求是,猎取每个城市的全拼,然后转换为小写情势再连贯上hellowx.com。其他的信息全部给过滤掉。

# awk 'NR%2==0{next}{print}' city.txt  | head -n 10
北京 BEIJING BJ
上海 SHANGHAI SH
天津 TIANJIN TJ
重庆 CHONGQING ZQ
阿克苏 AKESU AKS
安定 ANNING AN
安庆 ANQING AQ
鞍山 ANSHAN AS
安顺 ANSHUN AS
安阳 ANYANG AY

我们注意到,偶数行都是空白行。所以只有过滤偶数行就行了。这样过滤掉了空白行。注意上面的NR表示目前行号,意思是偶数行全部过滤掉。next表示忽略目前行。

接下就需要过滤首先和第三字段。

# awk 'NR%2==0{next}{print $2}' city.txt  | head -n 10
BEIJING
SHANGHAI
TIANJIN
CHONGQING
AKESU
ANNING
ANQING
ANSHAN
ANSHUN
ANYANG

上面的$2表示第二个字段,联合print表示只打印第二个字段。最后就是转换和连贯的工作了,就需要运用tr下令了。

# awk 'NR%2==0{next}{print $2}' city.txt  | head -n 10 | tr [A-Z] [a-z] | awk '{print $1"hellowx.com"}'
beijinghellowx.com
shanghaihellowx.com
tianjinhellowx.com
chongqinghellowx.com
akesuhellowx.com
anninghellowx.com
anqinghellowx.com
anshanhellowx.com
anshunhellowx.com
anyanghellowx.com

tr下令是用来作转换的,将全部大写转换我小写,然后再用awk来连贯上背面的字符串。

对上面波及的几个下令,要是不是太熟知可能不是那么容易了解。倡议,可以一步一步的来。熟知了首先步而,然后再去了解第二部。

最后,但愿大家可以认真去学习下这个下令,要是把握了awk,就可以做出许多成心思的事情哦!

以上就是通过几个案例解说linux下的awk下令的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板