尚觀awk學習

2021-08-27 07:05:19 字數 2517 閱讀 5032

awk 用法:awk ' pattern '

變數名 含義

argc

命令列變元個數

argv

命令列變元陣列

filename

當前輸入檔名

fnr 當前檔案中的記錄號

fs 輸入域分隔符,預設為乙個空格

rs 輸入記錄分隔符

nf 當前記錄裡域個數

nr 到目前為止記錄數

ofs 輸出域分隔符

ors 輸出記錄分隔符

awk '/101/' file 顯示檔案file中包含101的匹配行。

awk '/101/,/105/' file

awk '$1 == 5' file

awk '$1 == "ct"' file 注意必須帶雙引號

awk '$1 * $2 >100 ' file

awk '$2 >5 && $2<=15' file

awk '' file 顯示檔案file的當前記錄號、域數和每一行的第乙個和最後乙個域。

awk '/101/ ' file 顯示檔案file的匹配行的第

一、二個域加10。

awk '/101/ ' file

awk '/101/ ' file 顯示檔案file的匹配行的第

一、二個域,但顯示時域中間沒有分隔符。

df | awk '$4>1000000 ' 通過管道符獲得輸入,如:顯示第4個域滿足條件的行。

awk -f "|" '' file 按照新的分隔符「|」進行操作。

awk 'begin

' file 通過設定輸入分隔符(fs="[: \t|]")修改輸入分隔符。

sep="|"

awk -f $sep '' file 按照環境變數sep的值做為分隔符。

awk -f '[ :\t|]' '' file 按照正規表示式的值做為分隔符,這裡代表空格、:、tab、|同時做為分隔符。

awk -f '' '' file 按照正規表示式的值做為分隔符,這裡代表[、]

awk -f awkfile

file 通過檔案awkfile的內容依次進行控制。

cat awkfile

/101/ --遇到匹配行以後列印 ' hello! '.\047代表單引號。

--因為沒有模式控制,列印每一行的前兩個域。

awk '$1 ~ /101/ ' file 顯示檔案中第乙個域匹配101的行(記錄)。

awk 'begin

' file 通過設定輸出分隔符(ofs="%")修改輸出格式。

awk 'begin begin 表示在處理任意行之前進行的操作。

' file 取得檔案第乙個域的最大值。

(表示式1?表示式2:表示式3 相當於:

if (表示式1)

表示式2

else

表示式3

awk '' file

awk '$1 * $2 >100 ' file 顯示檔案中第乙個域匹配101的行(記錄)。

awk '' file 找到匹配行後先將第3個域替換後再顯示該行(記錄)。

awk '' file 將第7域被3除,並將餘數賦給第7域再列印。

awk '/tom/ ' file 找到匹配行後為變數wage賦值並列印該變數。

awk '/tom/

end ' file end表示在所有輸入行處理完後進行處理。

awk 'gsub(/\$/,"");gsub(/,/,""); cost+=$4;

end ' file gsub函式用空串替換$和,再將結果輸出到filename中。

1 2 3 $1,200.00

1 2 3 $2,300.00

1 2 3 $4,000.00

awk '

end "' file

通過if和else if完成條件語句

awk '

end "' file

通過exit在某條件時退出,但是仍執行end操作。

awk '

end "' file

通過next在某條件時跳過該行,對下一行執行操作。

awk '' file1 file2 file3>fileall 把file1、file2、file3的檔案內容全部寫到fileall中,格式為

列印檔案並前置檔名。

awk ' $1!=previous

' fileall 把合併後的檔案重新分拆為3個檔案。並與原檔案一致。

awk 'begin ' 通過管道把date的執行結果送給getline,並賦給變數d,然後列印。

awk 'begin '

通過getline命令互動輸入name,並顯示出來。

awk 'begin }'

列印/etc/passwd檔案中使用者名稱包含050x_的使用者名稱。

awk '}}

}'在awk中呼叫系統變數必須用單引號,如果是雙引號,則表示字串

flag=abcd

awk '' 結果為abcd

awk '' 結果為$flag

尚觀shell的學習

bin bash 預定義變數的學習 a pgrep a.sh if eq 0 then echo ps 命令執行成功 echo 執行結果是 a else echo 執行失敗,erro code is fiecho 當前指令碼的名稱是 0 echo 當前程序的程序號是 echo 你一共輸入了 個引數,...

尚觀shell的學習

bin bash 預定義變數的學習 a pgrep a.sh if eq 0 then echo ps 命令執行成功 echo 執行結果是 a else echo 執行失敗,erro code is fiecho 當前指令碼的名稱是 0 echo 當前程序的程序號是 echo 你一共輸入了 個引數,...

尚觀科技是什麼 尚觀科技 主頁

你輸入的郵件位址曾經通過 啟用了本站帳號,請使用 帳號直接登入。課程習題 提示請選擇乙個答案 提交檢視正確答案 下一題 0 data index data name 課程進度 開課時間待定 開課 進行到第 周 已結束 分 分 檢視證書 開啟奮鬥模式 已開啟奮鬥模式 申請證書 已申請證書,成績合格即頒...