六週第三次課 9.6/9.7 awk

9.6/9.7 awk


awk工具

awk也是流行的編輯器,針對文檔中的行來操作,一行一行的操作;
awk具備sed的所有功能,而且更強大。

  • awk也是流式編輯器,針對文檔中的行和段進行操作 awk可以分爲幾個部分:
  • 匹配字符或者字符串
  • 截取文檔中的某一段
  • 條件操作符
  • 數學運算
  • 內置變量
    awk內置變量

awk常用的變量有OFS,NR和NF
OFS 用來指定分隔符號
NR 表示行數
NF 表示段數

  • head -n2 test.txt|awk -F ':' '{print $1}'
  • head -n2 test.txt|awk -F ':' '{print $0}'
  • awk -F ':' '{print $1"#"$2"#"$3"#"$4}'
  • awk '/oo/' test.txt
  • awk -F ':' '$1 ~/oo/' test.txt
  • awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' test.txt
  • awk -F ':' '$3=="0"' /etc/passwd
  • awk -F ':' '$3>="500"' /etc/passwd
  • awk -F ':' '$3>=500' /etc/passwd
  • awk -F ':' '$7!="/sbin/nologin"' /etc/passwd
    語法
    awk [選項參數] 'script' var=value file(s)

    awk [選項參數] -f scriptfile var=value file(s)
  • 選項參數說明:
  • -F fs or --field-separator fs
  • 指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。
  • -v var=value or --asign var=value
  • 賦值一個用戶定義變量。
  • -f scripfile or --file scriptfile
  • 從腳本文件中讀取awk命令。
  • -mf nnn and -mr nnn
  • 對nnn值設置內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。
  • -W compact or --compat, -W traditional or --traditional
  • 在兼容模式下運行awk。所以gawk的行爲和標準的awk完全一樣,所有的awk擴展都被忽略。
  • -W copyleft or --copyleft, -W copyright or --copyright
  • 打印簡短的版權信息。
  • -W help or --help, -W usage or --usage
  • 打印全部awk選項和每個選項的簡短說明。
  • -W lint or --lint
  • 打印不能向傳統unix平臺移植的結構的警告。
  • -W lint-old or --lint-old
  • 打印關於不能向傳統unix平臺移植的結構的警告。
  • -W posix
  • 打開兼容模式。但有以下限制,不識別:/x、函數關鍵字、func、換碼序列以及當fs是一個空格時,將新行作爲一個域分隔符;操作符=不能代替^和^=;fflush無效。
  • -W re-interval or --re-inerval
  • 允許間隔正則表達式的使用,參考(grep中的Posix字符類),如括號表達式[[:alpha:]]。
  • -W source program-text or --source program-text
  • 使用program-text作爲源代碼,可與-f命令混用。
  • -W version or --version
  • 打印bug報告信息的版本。

六週第三次課 9.6/9.7 awk
六週第三次課 9.6/9.7 awk

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章