awk也是乙個編輯工具,他可以在無互動情況下實現複雜的文字操作。
awk執行流程
(1)首先執行begin{}區域塊中的初始化操作
(2)從指定的資料檔案中迴圈讀取乙個資料行(自動更新nf、nr、$0 、$1等內建變數的值),並執行』模式或條件』。
(3)最後執行end{}區域中的後續處理操作
awk內建變數
fs指定每行文字的字元分隔符,預設為空格或製表位
nf當前處理的行的字段個數(列數)
nr當前處理的行的序數(行數)
$0當前處理的行的整行內容
$n當前處理的第n個字段(第n列)
awk
'' test.txt (效果等同cat)
awk -f: '' /etc/passwd >> user.txt #輸出第一,二,四,最後一列
awk'(nr%2)==0' /etc/passwd #輸出檔案中偶數行內容
1.grep宣告
grep主要是應用於搜尋,過濾作用。它能使用正規表示式搜尋文字,並把匹配的行列印出來。
2.格式
grep [options]
3.主要引數
[options]主要引數:
-c:只輸出匹配行的計數。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
正規表示式選擇與解釋:
-e, --extended-regexp pattern 是乙個可擴充套件的正規表示式(縮寫為 ere)
-f, --fixed-strings pattern 是一組由斷行符分隔的定長字串。
-g, --basic-regexp pattern 是乙個基本正規表示式(縮寫為 bre)
-p, --perl-regexp pattern 是乙個 perl 正規表示式
-e, --regexp=pattern 用 pattern 來進行匹配操作
-f, --file=file 從 file 中取得 pattern
-i, --ignore-case 忽略大小寫
-w, --word-regexp 強制 pattern 僅完全匹配字詞
-x, --line-regexp 強制 pattern 僅完全匹配一行
-z, --null-data 乙個 0 位元組的資料行,但不是空行
輸出控制:
-m, --max-count=num num 次匹配後停止
-b, --byte-offset 輸出的同時列印位元組偏移
-n, --line-number 輸出的同時列印行號
–line-buffered 每行輸出清空
-h, --with-filename 為每一匹配項列印檔案名
-h, --no-filename 輸出時不顯示檔名字首
–label=label 將label 作為標準輸入檔名字首
shell三劍客之grep
grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果...
shell三劍客之sed
sed命令是文字處理工具,讀取文字內容,根據指定的條件進行處理,對檔案內容進行增刪改查,常與正規表示式進行相互配合使用。他是一種流編輯器,一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的...
shell三劍客之grep
grep 是乙個基於正規表示式的全域性文字搜尋工具,根據使用者指定的 模式 pattern 對目標文字進行過濾,顯示匹配到的行。grep options pattern filenamegrep適合單純的查詢或匹配文字,且區分大小寫的。a 不忽略二進位制資料 i 不區分大小寫,忽略字元大小寫 v 取...