二維碼
        企資網

        掃一掃關注

        當前位置: 首頁 » 企資快報 » 企業 » 正文

        如何使用awk處理文本內容

        放大字體  縮小字體 發布日期:2021-08-21 16:57:05    作者:啊丟    瀏覽次數:90
        導讀

        Awk是為高級文本處理而設計的非常強大的工具。她逐行搜索掃描文件,將輸入的每行分割成字段,將輸入行或字段與模式進行比較,并對匹配的結果執行操作。本節將使用sub和gsub函數和awk命令來刪除文件中的制表符和空格

        Awk是為高級文本處理而設計的非常強大的工具。她逐行搜索掃描文件,將輸入的每行分割成字段,將輸入行或字段與模式進行比較,并對匹配的結果執行操作。

        本節將使用sub和gsub函數和awk命令來刪除文件中的制表符和空格。我們將使用以下文本文件作為本文中所有示例的輸入文件:

        [root@localhost ~]# cat << EOF >> content.txt

        出現大于號時將一下內容復制到終端,將文本內容保存到content.txt文件中。

                hitesh engineer sales 30000jayesh director account 25000vyom manager purchase 20000bhavesh engineer sales 30000 rajesh directory sales 40000niraj clerk account 20000jay peon purchase 23000deep clerk sales 20000EOF

        刪除文件中的所有空白行

        可以使用awk的特殊變量NF,從文件中刪除所有空白行。例如,刪除文件content.txt中的所有空白行。

        [root@localhost ~]# awk NF content.txt 

        刪除每行開頭或者末尾的空格和制表符

        使用awk命令在文件開頭找到一個或多個空格或制表符并刪除。可以使用以下命令:

        [root@localhost ~]# awk '{ sub(/^[ \t]+/, ""); print }' content.txt


        命令行中的意思是:使用sub函數找到開頭是制表符和空格的行,并替換空格和制表符為空。注意:sub()函數替換只發生在第一次匹配的時候,也就是一行中有多個空格或多個制表符,只替換左面的第一個。

        刪除末尾的空格和制表符可以使用下面的命令:

        [root@localhost ~]# awk '{ sub(/[ \t]+$/, ""); print }' content.txt

        同時查詢開頭和末尾的空格和制表符,可以使用下面命令:

        [root@localhost ~]# awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }' content.txt

        gsub函數表示滿足條件,替換所有的匹配字符。

        倒序列出文件中的所有行

        她記錄數組中的所有行,并將她們以相反的順序排列。使用以下命令:

        [root@localhost ~]# awk '{ b[i++] = $0 } END { for (j=i-1; j>=0;) print b[j--] }' content.txt

        添加行號為每行內容

        使用以下命令使用NF內置變量對非空行進行編號:

        [root@localhost ~]# awk 'NF { $0=++a ": " $0 }; { print }' content.txt 

        打印包含特定字符串的行數

        使用以下命令來打印包含engineer的總行數:

        [root@localhost ~]# awk '/engineer/{n++}; END {print n+0}'  content.txt

        打印與指定字符串匹配的行

        下面實例中,篩選出含有 engineer字符串的行:

        [root@localhost ~]# awk '/engineer/' content.txt 

        打印與指定字符串不匹配的行

        下面實例中,打印不包含字符串 jayesh 的行:

        [root@localhost ~]# awk '!/jayesh/' content.txt 

        替換字符串

        實例一:將content.txt中的字符串“ engineer”替換為“ doctor”,用到gsub()函數:

        [root@localhost ~]# awk '{gsub(/engineer/,"doctor")}{print}' content.txt 


        實例二:查找字符串“ jayesh”,“ hitesh”或“ bhavesh”,并將其替換為字符串“ mahesh”,運行以下命令:

        [root@localhost ~]# awk '{gsub(/jayesh|hitesh|bhavesh/ , "mahesh"); print}' content.txt 

        配合df命令,顯示磁盤空間

        可以將awk命令與df一起使用,只顯示設備名稱和可用空間、使用率。

        [root@localhost ~]# df -h | awk '{printf("%-24s \t %-6s \t %-4s \n",$1,$4,$5)}'

        查看每個IP打開的連接數

        如果認為服務器受到攻擊,那么這種awk單行代碼非常有用。她將顯示服務器的打開連接列表,并按數量對她們進行排序。

        [root@localhost ~]# netstat -ntu|awk '{print $5}'|cut -d: -f1|awk '/[0-9]/'|sort|uniq -c|sort -n

        總結

        我們通過實際示例了解如何使用一行awk命令執行日常任務。

         
        (文/啊丟)
        免責聲明
        本文僅代表作發布者:啊丟個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

        粵ICP備16078936號

        微信

        關注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯系
        客服

        聯系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        主站蜘蛛池模板: 亚洲熟女乱色一区二区三区| 日本丰满少妇一区二区三区| 国产人妖在线观看一区二区| 久久久久久综合一区中文字幕| 无码精品人妻一区二区三区免费看 | 无码国产精品一区二区免费虚拟VR| 精品视频午夜一区二区| 人妻少妇AV无码一区二区| 精品一区二区三区中文| 日韩精品免费一区二区三区| 国产香蕉一区二区精品视频| 骚片AV蜜桃精品一区| 国产精品女同一区二区| 亚洲av无码天堂一区二区三区 | 亚洲AⅤ无码一区二区三区在线| 九九无码人妻一区二区三区| 一区二区视频在线播放| 国产精品区一区二区三在线播放| 又硬又粗又大一区二区三区视频| 精品一区二区AV天堂| 秋霞鲁丝片一区二区三区| 秋霞鲁丝片一区二区三区| 精品视频一区二区观看| 无码毛片一区二区三区中文字幕 | 日本精品一区二区三本中文| 无码人妻精品一区二区三区不卡 | 国产日本亚洲一区二区三区| 麻豆亚洲av熟女国产一区二| 亚洲一区免费在线观看| 亚洲一区二区三区久久| 亚洲av乱码一区二区三区按摩| 色一情一乱一伦一区二区三欧美| 亚洲AV无码片一区二区三区| 在线视频一区二区三区四区| 精品乱码一区二区三区在线| 中文字幕在线一区| 人妻无码一区二区三区AV| 一区一区三区产品乱码| 国产成人一区二区三区高清 | 一区二区三区视频在线| 伊人色综合网一区二区三区|