色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

用Linux怎樣批量提取一批文件中的某一行數據呢

林雅南2年前238瀏覽0評論

用Linux怎樣批量提取一批文件中的某一行數據呢?

想要在Linux中批量提取一批文件中的某一行數據,我的思路是把問題分解:

遍歷這批文件

提取某一行數據(根據模式匹配或者固定行號)

將數據輸出到某處

可以采用shell編程的方式來完成這個任務:

批量文件遍歷

批量文件遍歷有兩個辦法實現,如果知道文件的列表,就可以按照文件的列表來遍歷,例如:

其中file001、file002、file003是你這一批文件的路徑+文件名。

如果這些文件都放在了一個目錄foo下面,也可以寫成這個樣子:

從文件中提取某一行數據

根據關鍵詞匹配提取

比如當且僅當關鍵詞“bar”在這批文件中的每一個文件僅出現一次,我們就可以根據這個關鍵詞定位它所在的行,并輸出這一行:

grep "bar" filename

寫到循環中就是:

根據行號匹配提取

使用sed命令可以根據固定的行號提取文件中該行的內容,比如固定提取每個文件的第30行:

sed -n '30p' filename

寫到循環中就是:

將數據輸出到某處

最后將查找的內容使用重定向“>>”輸出到文本文件中。完整的腳本大約是這樣的:

總結一下,類似稍微復雜的文件操作首先想到的是將問題分解,針對每個小問題找出解決的方案。另外此例中如果文件都在一個目錄內的情況下,并且采用的是關鍵詞匹配提取,則可以直接使用grep語句一次性搞定:

grep “key_word” /foo/*

這樣做的缺點是輸出的信息帶有文件名,需要進一步處理,這里就不詳解了。

如果我的回答對你有點價值,請莫忘點贊加關注,謝謝!歡迎在評論區發表各種意見!

本文為作者原創,嚴禁轉載,違者必究。

java 讀取一行,用Linux怎樣批量提取一批文件中的某一行數據呢