awk多行記錄

2021-07-02 14:51:46 字數 883 閱讀 1862

到目前為止,本教程用作例子的所有資料檔案中,每條記錄都自成一行。而在下面這個名為checkbook的示例資料檔案中,記錄之間用空行分隔,同一記錄的字段之間則用換行符分隔。要處理這個檔案,就必須將記錄分隔符(rs)設為空值,而把字段分隔符(fs)設為換行符。

$  cat checkbook 1

/1/04

#125

-695.00

mortgage 1

/1/04

#126

-56.89

pg &e 1

/2/04

#127

-89.99

safeway 1

/3/04

+750.00

paycheck 1

/4/04

#128

-60.00

visa

$ cat awkchecker

begin

$ awk 

-f awkchecker checkbook 1

1/1/04 

#125 -695.00 mortgage21

/1/04 

#126 -56.89 pg&e31

/2/04 

#127 -89.99 safeway41

/3/04 

+750.00 paycheck 5

1/4/04 

#128 -60.00 visa 說明

1.在begin塊中,記錄分隔符(rs)被賦值為空,字段分隔符(fs)被設為換行符,輸出記錄分隔符(ors)則被設定為兩個換行符。於是,每一行都是乙個字段,且輸出記錄之間有兩個換行符將其分隔。

2.列印記錄號,後跟記錄的每個字段。

參考資料:

awk處理多行文字的記錄

awk使用內建的變數rs將輸入流拆分為乙個個記錄 record 使用fs將乙個記錄拆分為若干個域 field rs的預設值為 n,fs的預設值為空白字元。有時候會出現乙個記錄跨越多行的情況,這時就需要手動設定rs為記錄中不會出現的字元 否則會將乙個記錄拆分為兩個記錄 如空行 rs 分頁符 rs f ...

awk多行合併 next

在awk進行文字處理時候,我們可能會遇到。將多行合併到一行顯示問題。有點象sql裡面,經常遇到的行轉列的問題。這裡需要用到next語句。awk next語句使用 在迴圈逐行匹配,如果遇到next,就會跳過當前行,直接忽略下面語句。而進行下一行匹配。text.txt 內容是 ab cde chengm...

awk學習記錄

awk是乙個高效的文字處理工具。awk通過檔案或流讀取資料,然後根據指定的分隔符對資料進行切片,然後通過規則對資料進行處理,最後輸出!我們在linux上經常使用的unix awk的gun版 gawk。awk有三個基礎概念 如下資料檔案data.txt所示 姓名 上午 下午 陳二 數學 化學 張三 語...