面試題linux命令之awk

2021-02-16 莫瑜茶社
無論是在測試還是開發崗位的面試招聘中,都會被提問到:是否了解linux系統,經常使用linux命令有哪些,接著可能會出一道題目,找出下列文本中的哪些值?考察的就是linux中經常使用的同時功能也非常強大的幾個命令,比如awk,xargs,grep,sed等等。在店長參與工作後,經常會碰到這樣的場景,某個服務的某個接口穩定性突然降低了,需要排查原因。這個時候就需要我們連接到伺服器上通過從日誌中排查問題,找到原因。但是面對數以萬計的日誌,就只能通過grep,awk等等強大的命令來解決了。所以,今天和大家一起來學習總結一下linux命令之awk。篇幅有限,其他的命令在今後的文章中逐一學習。

 

awk是linux系統中非常強大的文本分析工具,經常用於提取文本中的信息並進行格式化處理。awk的名字也十分有趣,取自三位創始人Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的首字母。

awk語法

awk  [參數]  [腳本文件或者腳本代碼]  文件(或者從管道中讀取)awk一般會對輸入的文本逐行(因為輸入記錄的分隔符默認是換行)執行腳本做處理。

awk參數

Begin End模塊

awk會在處理文本之前首先執行Begin模塊,在這裡我們可以初始化一些變量值,接著執行腳本代碼,最後執行End模塊。

awk邏輯運算符

awk中絕大多數的邏輯運算符都與C語言的相同,在這裡列出幾個特殊且常用的。

+-*/
加減乘除
++ -- 自增或自減
= += -=
賦值語句
|| &&
邏輯或邏輯與
空格字符串連接符,如 a」 」b則輸出為abIn
可以用來判斷數組中是否存在某一鍵值

awk內置變量

awk命令中經常使用的內置的變量,其他還有很多,需要的時候可以自查。$0
當前全部記錄$1
當前記錄的第n個欄位FS  輸入欄位分隔符(默認是空格)RS 輸入記錄的分隔符(默認是換行)NF當前記錄中的欄位總數(欄位分隔符默認是空格時,就是列數)NR 當前的記錄數(記錄的分隔符默認是換行符時就是指當前的行號)

例題:

代碼:

awk '{    for(i=1;i<=NF;i++){        if(NR==1){            res[i]=$i        }else{            res[i]=res[i]" "$i        }    }}END{    for(j=1;j<=NF;j++){        print res[j]    }}' file.txt


 

相關焦點

  • 【Linux】常用命令之 awk 常用實例
    在使用awk命令的過程中,可以使用邏輯操作符「&&」和「||」;也可以進行簡單的數學運算,如+ 、-、、/、%、^分別表示加、減、乘、除、取餘、乘方。**awk從輸入文件或者標準輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個記錄,而將一行中的某一部分(列)作為記錄的一個欄位。
  • Linux常用命令 awk 入門基礎教程
    在使用awk命令的過程中,可以使用邏輯操作符「&&」和「||」;也可以進行簡單的數學運算,如+ 、-、、/、%、^分別表示加、減、乘、除、取餘、乘方。**awk從輸入文件或者標準輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個記錄,而將一行中的某一部分(列)作為記錄的一個欄位。
  • Linux 三劍客 Awk、Sed、Grep 命令詳解
    詳細說明awk 是一種程式語言,用於在linux/unix下對文本和數據進行處理。數據可以來自標準輸(stdin)、一個或多個文件,或其它命令的輸出。它在命令行中使用,但更多是作為腳本來使用。awk有很多內建的功能,比如數組、函數等,這是它和C語言的相同之處,靈活性是awk最大的優勢。
  • Linux awk命令入門詳解
    awk語言的最基本功能是在文件或者字符串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然後執行相應的命令,來處理文本。
  • linux Awk命令詳解
    awk語言的最基本功能是在文件或者字符串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然後執行相應的命令,來處理文本。
  • Linux Awk命令詳解
    awk語言的最基本功能是在文件或者字符串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然後執行相應的命令,來處理文本。
  • linux awk命令詳解
    awk語言的最基本功能是在文件或者字符串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然後執行相應的命令,來處理文本。
  • linux文本分析命令——awk
    此時,如果不需要第一行,可以使用NR內建變量來根據它來輸入,命令:awk -F "|" 'NR!=1 {print $1,$3}' test_awk.log意為:NR(類似索引,awk是按行分析)不為1,即不為第一行的內容,才輸出,註:條件NR!=1直接寫在''內,操作才寫在{}內。
  • 10分鐘學會 Linux awk命令
    awk語言的最基本功能是在文件或者字符串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然後執行相應的命令,來處理文本。
  • 【Java面試系列】Linux面試題
    1.Linux 面試題絕對路徑用什麼符號表示?當前目錄. 上層目錄用什麼表示?主目錄用什麼表示? 切換目錄用什麼命令?怎麼查看當前進程?怎麼執行退出?怎麼查看當前路徑?怎麼清屏?怎麼退出當前命令?怎麼執行睡眠?怎麼查看當前用戶id?查看指定幫助用什麼命令?Ls 命令執行什麼功能?可以帶哪些參數,有什麼區別?目錄創建用什麼命令?創建文件用什麼命令?
  • Linux 三劍客之 awk 詳解
    (給Linux愛好者加星標,提升Linux技能)以下文章來源於宜信技術學院 ,作者秦偉第一篇 awk簡介與表達式實例
  • 性能工具之linux常見日誌統計分析命令
    引言在上文中性能工具之linux三劍客awk、grep、sed詳解,我們已經詳細介紹 linux
  • awk 系列:awk 怎麼讀取標準輸入(STDIN)
    在 awk 系列的第七節中,我們將會看到幾個例子,你可以篩選其他命令的輸出代替從一個文件讀取輸入作為 awk 的輸入。我們首先從使用 dir 命令[1]開始,它類似於 ls 命令[2],在第一個例子下面,我們使用 dir -l 命令的輸出作為 awk 命令的輸入,這樣就可以列印出文件擁有者的用戶名,所屬組組名以及在當前路徑下他/她擁有的文件。
  • awk一個linux系統的中的好教官
    而awk教官可以很方便幫我們處理好存放在日誌中的士兵,可以幫助我們選出最高的士兵,可以幫助我們選出經常出操的士兵,可以幫我們選出哪些士兵經常在一起。看下面的一個需求:我們需要看看經常訪問網站的有哪些ip,並且把它們的訪問次數統計出來。
  • 海量數據處理之cut、awk、sed命令詳解,數據分析必備技能,不難
    數據都存儲在文件中,文件中肉眼可見的數據無非就是各種有規則的字符的組合,比如日誌文件,小文件我們還可以認真閱讀,但是給你一個10M大小的數據文件,不亞於閱讀一本小說,更何況密密麻麻都是數據,我們可以通過cut、awk、sed這三個命令從規則文件中提取符合我們需要的數據,重要的是他們的運行速度非常的塊。
  • Linux 上 12 個高效的文本過濾命令
    1、 awk 命令awk[1] 是一個卓越的模式掃描和處理語言,它可被用於在 Linux 下構造有用的過濾器。你可以通過閱讀我們的 awk 系列 1 到 13 部分[2] 來開始使用它。另外,也可以通過閱讀 awk 的 man 手冊來獲取更多的信息和使用選項。
  • Linux shell腳本編程入門系列七:linux三劍客之awk
    1、awk是什麼?awk命令的作用是進行文本掃描、處理以及報表的生成。awk命令有自己的語法規則,官方說法叫「樣式掃描和處理語言」,其語法借鑑了C語言的精華。由於其強大的文本分析能力與格式化輸出能力,awk命令成為Linux環境開發者的必備殺器,與grep命令、sed命令一起被稱為Linux三劍客。熟練運用awk命令能讓我們的日常工作變得高端同時也高效起來。2、awk的基本使用awk對文本的掃描是以行為單位的,也就是說awk一次從文本中讀取一行的內容。
  • Linux awk 入門教程
    對於日誌、CSV 那樣的每行格式相同的文本文件,awk可能是最方便的工具。awk其實不僅僅是工具軟體,還是一種程式語言。不過,本文只介紹它的命令行用法,對於大多數場合,應該足夠用了。一、基本用法awk的基本用法就是下面的形式。
  • Linux shell awk 流程控制語句(if,for,while,do)詳細介紹
    在linux awk的 while、do-while和for語句中允許使用break,continue語句來控制流程走向,也允許使用exit這樣的語句來退出
  • Linux Awk用法總結
    但千裡之行,始於足下,我們首先從最基本的命令行語法開始,一步一步得走入awk的編程世界。同sed一樣,awk的命令行語法也有兩種形式:awk [-F ERE] [-v assignment] ... program [argument ...]awk [-F ERE] -f progfile ...  [-v assignment] ...