我有兩個文件,FileA和文件B.文件A包含所有的數據。文件B包含我想要在文件A中找到的感興趣的序列。我正在使用的實際文件中有超過6000行。grep行從另一個文件中列出一個文件,然後打印上面的序列
文件:
Name1
Apples
Name2
Pears
Name3
Pears
Name4
Grapes
Name5
Apples
文件B:
Apples
Pears
我想寫一個UNIX命令或Python腳本,讓我只打印感興趣的序列上方的線。
我已經使用這個命令嘗試:
grep -B 1 -f FileB FileA | awk -F '\n' 'ln ~ /^$/ { ln = "matched"; print $1 } $1 ~ /^--$/ { ln = "" }'
,但我得到了下面的列表中沒有任何方式的名稱爲蘋果和梨
Name1
Name5
Name2
Name3
我想什麼來區分是一樣的東西這個:
Apples
Name1
Name5
Pears
Name2
Name3
然後我需要這個列表成爲這樣的東西:
Apples >Name 1, Name 5
Pear > Name 2, Name 3
我對編程非常陌生,任何建議都會很棒!
您可能想要更改您的問題:命令的grep部分工作正常。這是'awk'命令不符合你的期望。事實上,看看你想要什麼樣的最終輸出,我甚至不會用'grep'或'awk'來打擾,我會直接去Python和它的[fileinput](https://docs.python)。 org/3/library/fileinput.html)庫。 – user2926055
在** awk **腳本中,您只是忽略了打印觸發打印的水果名稱。至於Python,你還沒有做任何嘗試,所以我們無法幫助你處理你的代碼。 – Prune
歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [在主題](http://stackoverflow.com/help/on-topic)和[如何提問](http://stackoverflow.com/help/how-to-ask)適用於此處。 StackOverflow不是一個設計,編碼,研究或教程服務。 – Prune