如何在awk中使用变量的值

阿尤什·贾恩

我有一个名为 days.txt 的文件,用于存储编号。天。它只包含一个记录,目前是 7 个。

我想在下面的 awk 表达式中使用 days.txt 的值

awk -F, '{ $1 = substr($1,1,1) strftime("%Y%m%d",mktime(sprintf("%4d %.2d %.2d 00 00 00",substr($1,2,4),substr($1,6,2),substr($1,8,2)))-7*24*60*60) }; 1' OFS="," file

这个 awk 语句基本上将另一个文件的日期移动了 7 天。当我尝试使用变量中 days.txt 的值时,awk 语句不会返回任何错误,但它也不会移动日期。

awk -F, '{ $1 = substr($1,1,1) strftime("%Y%m%d",mktime(sprintf("%4d %.2d %.2d 00 00 00",substr($1,2,4),substr($1,6,2),substr($1,8,2)))-$(value)*24*60*60) }; 1' OFS="," file

对此的任何帮助都会非常有帮助!!

埃德·莫顿

不要先将值读入 shell 变量,只需将其读入 awk 变量:

awk '
    BEGIN {FS=OFS="," }
    NR==FNR { value=$0; next }
    { $1 = substr($1,1,1)...substr($1,8,2)))-value*24*60*60) }
1' days.txt file

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章