shell三劍客之awk grep

2021-10-04 20:48:25 字數 1625 閱讀 8612

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 取...