我在下面的格式文件1:在下面的格式用awk比較文件條目以及條件
14-02-2017
one 01/02/2017
two 31/01/2017
three 14/02/2017
four 01/02/2017
five 03/02/2017
six 01/01/2017
和file2:
11-02-2017
one 01/01/2017
two 31/01/2017
three 14/02/2017
four 11/01/2017
要求:我要複製,將文件2中提到的文件1從某個位置替換(或添加,如果需要的話)到文件2所在位置,其日期(以coulmn 2爲單位)大於文件2中提到的日期。可以保證在任何情況下文件2都不會一個程序的日期大於文件1的日期(但可以相等)。此外,文件2中丟失的文件條目(但存在於文件1中)也應該被複制。
所以,在這種情況下,文件一,四,五,六必從某個位置的文件2位置複製,腳本執行
的awk -F」'「NR == FNR後{C [$ 1] ++;}旁邊; C [$ 1]> 0' $ $ file2的文件1>共同
#文件1,列2 f1c2 =($(切-f2 -s $常見))
#文件2第2欄 f2c2 =($(cut -f2 -s $ file2))
for x in "${f1c2[@]}"
do
for y in "${f2c2[@]}"
do
if [[ $x >= $y ]]
then
//copy file pointed by field $1 in "common" to file2 path
break
fi
done
done
我正在考慮一種有效地使用awk本身的方式來執行比較任務來創建「common」文件。因此,文件「common」將包含文件1中的最新文件以及文件2中缺少的項目。按照這種方式,我只需要複製文件「common」中提到的所有文件,不需要擔心。
I was was試圖添加一些if內部塊awk -F'''NR == FNR {c [$ 1] ++; next}; c [$ 1]> 0'$ file2 $ file1> common,但我無法弄清楚解決file1第2列和第2列第2列進行比較。
awk是強制性的嗎? – mcoolive
不是真的,但我想保持一個乾淨的外觀,沒有太多的代碼行 – user7083883
我理解正確,file1中的日期是當前的文件日期,而file2中的日期代表舊的情況,並且你在上面是某種形式或鏡像或備份?如果是這樣,可能你需要的只是一個具有適當參數的'rsync'調用。讓我們知道... – Dario