我使用awk來執行對文件的文件比較中found.txt上市添加文件信息給AWK比較
while read line; do
awk 'FNR==NR{a[$1]++;next}$1 in a' $line compare.txt >> $CHECKFILE
done < found.txt
found.txt包含完整路徑信息爲一個數字,可能包含的文件數據。雖然我能夠確定這兩個文件中都存在這些數據,並將該數據輸出到$ CHECKFILE,但我希望能夠將find.txt(文件名)中的行放在找到該行的位置。
換句話說,我最終的東西,如:
File " /xxxx/yyy/zzz/data.txt "contains the following lines in found.txt $line
只是不知道如何讓/xxxx/yyy/zzz/data.txt信息到流。
追加澄清: 文件found.txt包含完整路徑信息的幾個文件在系統上
/path/to/data/directory1/file.txt
/path/to/data/directory2/file2.txt
/path/to/data/directory3/file3.txt
每個文件有需要追加前必須檢查是否存在參數列表稍後在腳本中向他們提供更多信息。
所以例如,file.txt的包含以下字段
parameter1 = true
parameter2 = false
...
parameter35 = true
的compare.txt文件包含多個參數,以及。 因此,如果參數35(或任何其他參數)出現在三個文件中的一箇中,我會將其輸出下降到Checkfile。
這兩個腳本(你和我發佈的腳本)都會給我那個輸出,但是我也想在循環中當前正在讀取的行中回顯。聽起來像我只是能夠以某種方式管它,但我的awk專業知識是有限的。
感謝您的快速回復。我正在有限的Linux環境中工作,無法確定GAWK是否可用。 AWK是。在腳本的前面部分,我搜索了在'found.txt'中存儲完整路徑信息的類型的所有文件。這是我傳入比較命令的內容。在我的示例文件中,我有兩行相同的行,所以我知道該命令正在工作。我只希望能夠將當前正在讀取的行與實際數據一起輸出到「found.txt」中。 – 2015-01-26 19:20:13
我明白所有這一切,我相信我發佈的答案可以解決您的問題,並將其增強爲不需要shell循環。 – 2015-01-26 19:29:02
埃德,我試着你提供的命令,並得到相同的輸出。它打印樣本集中三個文件之一中找到的行,但不會告訴我該行來自哪個文件。 – 2015-01-26 19:37:42