2013-05-14 81 views
0

由於某種原因,我無法得到這份工作?我想比較前一天和當前日期文件。Awk前一天

awk 'FNR==NR{a[NR]=$2;next}{print $1,$2-a[FNR]}' Router_Evi_`(strftime("%y-%m-%d", systime()-86400))`.txt Router_Evi_`(date +"%y-%m-%d")`.txt > temp_plus_minus.txt 

感謝

+0

所有看到的是引用/反引號噩夢..不是一個問題。這些文件的內容是什麼,以及你想達到什麼,即預期的輸出。 – 2013-05-14 12:16:01

回答

1

你感到困惑與awk腳本和shell的$(..)

`...` 

你給的命令是:

awk '....' foo_`(awkcode)`.txt bar_`(shell cmd)`.txt 
        ^
---problem----------| 

這是不行的。因爲你不能讓shell解釋和執行你的awk代碼。您應該在反引號中編寫shell命令/代碼。或者是這樣的:

foo_$(awk 'BEGIN{print strftime("%y-%m-%d", systime()-86400)}').txt 

這將是更好得到兩個文件名中的第一個變量(如果它們是動態的),然後調用awk腳本。將所有內容組合成一行並不總是最好的解決方案。