2013-05-14 82 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脚本。将所有内容组合成一行并不总是最好的解决方案。