Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash awk内的打印日期_Bash_Date_Awk - Fatal编程技术网

Bash awk内的打印日期

Bash awk内的打印日期,bash,date,awk,Bash,Date,Awk,我试图在awk命令中打印日期。我找不到一种方法来解决gawk的参数被放在单引号内这一事实,它否定了我需要的date执行: 在gawk命令中如何解决这个问题?谢谢 现在还不是100%清楚你想在这里做什么一些输入和期望的输出会很有用,但我认为这就是你想要的: gawk -v date="$(date)" -v OFS=, '/g[ea]/ { print $1, $2, date }' 这将根据date命令的输出设置awk变量date,并在第一个和第二个字段后打印。我已经设置了输出字段分隔符OFS

我试图在awk命令中打印日期。我找不到一种方法来解决gawk的参数被放在单引号内这一事实,它否定了我需要的date执行:


在gawk命令中如何解决这个问题?谢谢

现在还不是100%清楚你想在这里做什么一些输入和期望的输出会很有用,但我认为这就是你想要的:

gawk -v date="$(date)" -v OFS=, '/g[ea]/ { print $1, $2, date }'
这将根据date命令的输出设置awk变量date,并在第一个和第二个字段后打印。我已经设置了输出字段分隔符OFS,以使打印命令更整洁

或者,最好使用GNU awk中提供的strftime函数:

gawk -v OFS=, '/g[ea]/ { print $1, $2, strftime() }'
输出的格式略有不同,但可以通过向函数传递格式字符串进行调整。有关这方面的详细信息,请参阅


我还根据评论中的建议简化了正则表达式,谢谢。

现在还不是100%清楚您在这里要做什么。一些输入和所需的输出将是有用的,但我认为这正是您想要的:

gawk -v date="$(date)" -v OFS=, '/g[ea]/ { print $1, $2, date }'
这将根据date命令的输出设置awk变量date,并在第一个和第二个字段后打印。我已经设置了输出字段分隔符OFS,以使打印命令更整洁

或者,最好使用GNU awk中提供的strftime函数:

gawk -v OFS=, '/g[ea]/ { print $1, $2, strftime() }'
输出的格式略有不同,但可以通过向函数传递格式字符串进行调整。有关这方面的详细信息,请参阅


根据评论中的建议,我还简化了正则表达式。谢谢。

gawk有自己的日期函数stftime。虽然如果你真的想用date,那么就用systemdate或date |getline@User112638726systemdate将不起作用,因为它返回日期的退出状态。@Rakholiya它返回退出状态,但也输出执行命令的结果。@Rakholiya,而不是您应该执行{systemdate}@User112638726,如果可能,只是有点乱:printf%s,%s,,$1,$2;systemdategawk有自己的日期函数stftime。虽然如果你真的想用date,那么就用systemdate或date |getline@User112638726systemdate将不起作用,因为它返回日期的退出状态。@Rakholiya它返回退出状态,但也输出执行命令的结果。@Rakholiya,而不是您应该执行{systemdate}@User112638726,如果可能,只是有点乱:printf%s,%s,,$1,$2;这太好了,谢谢。为什么-v需要两次?我试过只使用一个,但它不起作用。-v对您要设置的每个变量都使用一次。在第一个代码中,设置了两个变量,因此每个变量都需要使用-v。这非常完美,谢谢。为什么-v需要两次?我试过只使用一个,但它不起作用。-v对您要设置的每个变量都使用一次。对于第一个代码,设置了两个变量,因此需要对每个变量使用-v。