我想Main.txt比較Today.txt的文件名。 如果有匹配,然後打印Main.txt匹配的文件和Today.txt的時間列的所有6列有一個新的文件說matched.txt。比較兩個文件與通用文件名,但希望從兩者都輸出匹配,如何使用awk?
和不與Main.txt相匹配的文件,然後列出TODAY.txt的文件名和時間在一個新的文件說unmatched.txt
注意:加號(+)表示文件是從INPROGRESS目錄,有時文件名會附加「+」。
Main.txt
date filename timestamp space count status
Nov 4 +CHCK01_20161104.txt 06:39 2.15M 17153 on_time
Nov 4 TRIPS11_20161104.txt 09:03 0.00M 24 On_Time
Nov 4 AR02_20161104.txt 09:31 0.00M 7 On_Time
Nov 4 AR01_20161104.txt 09:31 0.04M 433 On_Time
Today.txt
filename time
CHCK01_20161104.txt 06:03
CHCK05_20161104.txt 11:10
CHCK09_20161104.txt 21:46
AR01_20161104.txt 09:36
AR02_20161104.txt 09:36
ifs01_20161104.txt 21:16
TRIPS11_20161104.txt 09:16
所需的輸出: matched.txt
Nov 4 +CHCK01_20161104.txt 06:39 06:03 2.15M 17153 on_time
Nov 4 TRIPS11_20161104.txt 09:03 09:16 0.00M 24 On_Time
Nov 4 AR02_20161104.txt 09:31 09:36 0.00M 7 On_Time
Nov 4 AR01_20161104.txt 09:31 09:36 0.04M 433 On_Time
unmatched.txt
CHCK05_20161104.txt 11:10
CHCK09_20161104.txt 21:46
ifs01_20161104.txt 21:16
下面的命令給了我正確的輸出,除了Today.txt的第2列輸出,請幫我在這嗎?
awk 'FNR==1{next}
NR==FNR{a[$1]=$2; next}
{k=$3; sub(/^\+/,"",k)} k in a{print; delete a[k]}
END{for(k in a) print k,a[k] > "unmatched.txt"}' Today.txt Main.txt > matched.txt
非常感謝!
是否'main.txt'和'today.txt'具有報頭所示例子中? – nu11p01n73R
是的,有頭在那裏,但我不希望在我的匹配或不匹配的輸出頭,感謝 – Barcode
和'main.txt'是'today.txt'要這些文件出現一次? – nu11p01n73R