歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux如何使用文本處理工具awk

  awk是Linux中的文本處理工具,類似於shell編程語言,擁有屬於自己的語言,下面小編就給大家介紹下Linux中awk文本處理工具的用法,感興趣的朋友可以來了解一下。

 Linux如何使用文本處理工具awk
 

  調用方式

  1.命令行

  awk [-F field-separator] ‘commands’ input-file(s)

  commands是真正awk命令,[-F域分隔符]是可選的。input-file(s) 是待處理的文件。在awk中,文件的每一行中,由域分隔符分開的每一項稱為一個域。通常,在不指名-F域分隔符的情況下,默認的域分隔符是空格(或者tab)。

  2.shell腳本方式

  將所有的awk命令插入一個文件,並使awk程序可執行,然後awk命令解釋器作為腳本的首行,以便通過鍵入腳本名稱來調用。相當於shell腳本首行的:#!/bin/sh 可以換成:#!/bin/awk -f

  3.將所有的awk命令插入一個單獨文件,然後調用:awk -f awk-script-file input-file(s)其中,-f選項加載awk-script-file中的awk腳本,input-file(s)跟上面的是一樣的。

  內置變量

  ARGC:命令行參數個數

  ARGV:命令行參數排列

  ENVIRON:UNIX環境變量

  ERRNO:UNIX系統錯誤消息

  FILENAME:awk浏覽的文件名

  OFMT:數字的輸出格式 %.6g

  FNR:浏覽文件的記錄數

  FS:設置輸入域分隔符,等價於命令行 -F選項

  NF:浏覽記錄的域的個數

  NR:已讀的記錄數,就是行號,從1開始

  FNR:當前記錄數

  OFS:輸出域分隔符

  ORS:輸出記錄分隔符

  RS:控制記錄分隔符

  $0:當前記錄(作為單個變量)

  $1~$n:當前記錄的第n個字段,字段間由FS分隔

  輸出函數

  print:參數可以是變量、數值或者字符串。字符串必須用雙引號引用,參數用逗號分隔。如果沒有逗號,參數就串聯在一起而無法區分。這裡,逗號的作用與輸出文件的分隔符的作用是一樣的,只是後者是空格而已

  printf:其用法和c語言中printf基本相似,可以格式化字符串,輸出復雜時,printf更加好用,代碼更易懂。具體格式如下:

  %d 十進制有符號整數

  %u 十進制無符號整數

  %f 浮點數

  %s 字符串

  %c 單個字符

  %p 指針的值

  %e 指數形式的浮點數

  %x %X 無符號以十六進制表示的整數

  %o 無符號以八進制表示的整數

  %g 自動選擇合適的表示法

  獲取外部變量

  1.獲取普通外部變量

  awk ‘{action}’ 變量名=變量值

  2.BEGIN程序塊中變量

  awk –v 變量名=變量值 [–v 變量2=值2 …] ‘BEGIN{action}’

  3.環境變量

  需要用到內置變量ENVIRON實現

 123456 共6頁

Copyright © Linux教程網 All Rights Reserved