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指令碼中逐行讀取檔案指令碼
- shell指令碼技巧—建立和清空檔案指令碼
- shell指令碼文字處理工具指令碼
- Linux 使用 shell 指令碼處理字串Linux指令碼字串
- Shell指令碼 | 抓取log檔案指令碼
- Shell文字處理編寫單行指令的訣竅
- shell指令碼之批次清空檔案指令碼
- Python編解碼問題與文字檔案處理Python
- [Golang]呼叫外部shell程式處理檔案Golang
- [ Shell ] 通過 Shell 指令碼匯出 GDSII/OASIS 檔案指令碼
- Linux文字處理技巧分享Linux
- Linux檔案管理知識:文字處理Linux
- 共享一個iptables的shell指令碼檔案指令碼
- shell 備份檔案指令碼+自動清理指令碼
- 處理 Linux 檔案的 3 個技巧Linux
- 如何讓shell指令碼變成可執行檔案指令碼
- 11.9Linux檔案管理知識:文字處理Linux
- 批處理指令碼:遞迴移動資料夾內所有檔案指令碼遞迴
- 字元編碼與檔案處理字元
- 如何在shell指令碼里使用sftp批次傳送檔案指令碼FTP
- Linux系統配置檔案簡易shell備份指令碼Linux指令碼
- shell指令碼之刪除固定天數之前的檔案指令碼
- 使用shell指令碼替換csv檔案中的資料指令碼
- [轉]寫好shell指令碼的13個技巧指令碼
- 【python技巧】文字處理-re庫字元匹配Python字元
- (五)Linux之檔案與目錄管理以及文字處理Linux
- shell指令碼指令碼
- python 檔案處理Python
- python處理檔案Python
- python檔案處理Python
- bat批處理常用指令碼BAT指令碼
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- 幫助你排序文字檔案的 Awk 命令列或指令碼排序命令列指令碼
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列
- shell指令碼案例指令碼
- 常用shell指令碼指令碼
- Linux Shell指令碼Linux指令碼
- linux 查詢某個日期以後修改過哪些檔案 shell指令碼Linux指令碼