站長資訊網
最全最豐富的資訊網站

通過幾個案例講解linux下的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,就可以做出很多有意思的事情哦!

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲第一永久AV网站久久精品男人的天堂AV | 夜精品a一区二区三区| 91精品国产高清久久久久久| 久久久精品视频免费观看| 国产AV一区二区精品凹凸| 国产精品1000夫妇激情啪发布| 国产精品久久毛片完整版| 98精品国产高清在线看入口| 亚洲精品乱码久久久久久按摩| 国产农村妇女毛片精品久久| 日韩免费观看一级毛片看看| 国产精品jlzz视频| 精品久久久久久无码中文野结衣 | 久久人人做人人玩人精品| 日韩国产成人精品视频| 国产办公室秘书无码精品99| 国内精品伊人久久久久av一坑| 精品国产亚洲男女在线线电影| 亚洲国产精品激情在线观看 | 精品无码人妻一区二区免费蜜桃| 久久久亚洲精品国产| 亚洲国产精品成人久久| 精品国产一区二区三区久久| 久久国产午夜精品一区二区三区| 亚洲国产精品尤物yw在线| 无码国内精品久久人妻麻豆按摩 | 国产色无码精品视频国产| 国产精品视频在线观看| 九九九精品成人免费视频| 在线综合亚洲中文精品| 97久久精品亚洲中文字幕无码| 亚洲精品无码mv在线观看网站| 久久九九久精品国产| 青草国产精品视频。| 永久无码精品三区在线4| 青青热久久国产久精品| 国产精品久久久久久网站| 国产精品久久久久影院| 日韩成人av在线| 日韩国产成人资源精品视频| 亚洲福利精品电影在线观看|