遍歷這批文件 提取某一行數據(根據模式匹配或者固定行號) 將數據輸出到某處
可以采用shell編程的方式來完成這個任務:
批量文件遍歷
批量文件遍歷有兩個辦法實現,如果知道文件的列表,就可以按照文件的列表來遍歷,例如:
其中file001、file002、file003是你這一批文件的路徑+文件名。
如果這些文件都放在了一個目錄foo下面,也可以寫成這個樣子:
從文件中提取某一行數據
根據關鍵詞匹配提取
比如當且僅當關鍵詞“bar”在這批文件中的每一個文件僅出現一次,我們就可以根據這個關鍵詞定位它所在的行,并輸出這一行:
grep"bar"filename
寫到循環中就是:
根據行號匹配提取
使用sed命令可以根據固定的行號提取文件中該行的內容,比如固定提取每個文件的第30行:
sed-n'30p'filename
寫到循環中就是:
將數據輸出到某處
最后將查找的內容使用重定向“>>”輸出到文本文件中。完整的腳本大約是這樣的:
總結一下,類似稍微復雜的文件操作首先想到的是將問題分解,針對每個小問題找出解決的方案。另外此例中如果文件都在一個目錄內的情況下,并且采用的是關鍵詞匹配提取,則可以直接使用grep語句一次性搞定:
grep“key_word”/foo/*
這樣做的缺點是輸出的信息帶有文件名,需要進一步處理,這里就不詳解了。
本文為作者原創,嚴禁轉載,違者必究。