Shell指令碼逐行處理文字檔案技巧
導讀 | 本文主要給大家介紹了關於 如何逐行處理文字檔案的相關資料 |
經常會對文體檔案進行逐行處理,在Shell裡面如何獲取每行資料,然後處理該行資料,最後讀取下一行資料,迴圈處理.有多種解決方法如下:
read 從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數,用 IFS(內部欄位分隔符)變數中的字元作為分隔符。VariableName (變數名)引數指定給每一個欄位的值,由 VariableName (變數名)引數指定的以此類推,直到最後一個欄位。
read命令接收標準輸入,或其他檔案描述符的輸入,得到輸入後,read命令將資料放入一個標準變數中.
利用read讀取檔案時,每次呼叫read命令都會讀取檔案中的"一行"文字.
當檔案沒有可讀的行時,read命令將以非零狀態退出.
cat data.dat | while read line do echo "File:${line}" done while read line do echo "File:${line}" done < data.dat
awk是一種優良的文字處理工具,提供了極其強大的功能.
語法格式:awk [選項] '指令' 操作檔案
常用選項:-F 指定分隔符,分隔符用""引起來
-v:var=value在awk程式開始之前指定一個值valu給變數var,這些變數值用於awk程式的BEGIN快
-f:後面跟一個儲存了awk程式的檔案,代替在命令列指定awk程式
利用awk讀取檔案中的每行資料,並且可以對每行資料做一些處理,還可以單獨處理每行資料裡的每列資料.
cat data.dat | awk '{print $0}' cat data.dat | awk 'for(i=2;i<NF;i++) {printf $i} printf "\n"}'
第1行程式碼輸出data.dat裡的每行資料,第2程式碼輸出每行中從第2列之後的資料.
如果是單純的資料或文字檔案的按行讀取和顯示的話,使用awk命令比較方便.
for var in file 表示變數var在file中迴圈取值.取值的分隔符由$IFS確定.
for line in $(cat data.dat) do echo "File:${line}" done for line in `cat data.dat` do echo "File:${line}" done
如果輸入文字每行中沒有空格,則line在輸入文字中按換行符分隔符迴圈取值.
如果輸入文字中包括空格或製表符,則不是換行讀取,line在輸入文字中按空格分隔符或製表符或換行符特環取值.
可以透過把IFS設定為換行符來達到逐行讀取的功能.
IFS的預設值為:空白(包括:空格,製表符,換行符).
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2772407/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何在Shell指令碼中逐行讀取檔案指令碼
- 將DOS批處理檔案轉換為Shell指令碼指令碼
- 用linux shell逐行讀取文字檔案內容Linux
- shell指令碼文字處理工具指令碼
- 使用批處理指令碼或SHELL配合SQL指令碼指令碼SQL
- linux_shell_awk 處理 文字檔案 並匯入excelLinuxExcel
- Shell指令碼 | 抓取log檔案指令碼
- Shell文字處理編寫單行指令的訣竅
- SHELL技巧:處理檔名中的那些空格
- Linux 使用 shell 指令碼處理字串Linux指令碼字串
- 【轉】shell指令碼處理字串的常用方法指令碼字串
- C#處理文字檔案概述C#
- [Golang]呼叫外部shell程式處理檔案Golang
- 【轉載】SHELL字串處理技巧(${}、##、%%)字串
- 使用shell指令碼巧妙統計檔案指令碼
- 如何用Shell指令碼生成XML檔案指令碼XML
- VB讀取文字檔案的例子:逐行讀取
- [ Shell ] 通過 Shell 指令碼匯出 GDSII/OASIS 檔案指令碼
- Python編解碼問題與文字檔案處理Python
- 逐行顯示檔案內容並允許修改的DCL指令碼指令碼
- Linux文字處理技巧分享Linux
- shell指令碼0——”一切皆檔案“, 認識Shell指令碼
- 共享一個iptables的shell指令碼檔案指令碼
- shell 備份檔案指令碼+自動清理指令碼
- 【shell 】求兩個檔案相加的指令碼指令碼
- 【C語言】逐行讀取文字數字資料,經過某種處理再逐行寫入另外一個文字C語言
- Linux檔案管理知識:文字處理Linux
- 編寫簡單的windows bat批處理指令碼檔案WindowsBAT指令碼
- 處理 Linux 檔案的 3 個技巧Linux
- 用shell處理二進位制檔案(轉)
- 使用shell指令碼build並建立ipa檔案(轉)指令碼UI
- 【shell 指令碼】檢視*.gz 檔案的內容指令碼
- Linux/Unix shell 指令碼清除歸檔日誌檔案Linux指令碼
- 命令列與Shell -> 文字處理命令之sed命令列
- 如何讓shell指令碼變成可執行檔案指令碼
- 用shell指令碼合併多個檔案內容指令碼
- 建立定期清理listener,trace檔案的shell指令碼指令碼
- 字元編碼與檔案處理字元