如何在另一个命令中使用 awk 的输出?
所以我需要将日期转换为不同的格式。使用 bash 管道,我获取上次控制台登录的日期,并使用 awk 提取相关位,如下所示:
last $USER | grep console | head -1 | awk '{print $4, $5}'
哪个输出:Aug 08
(在本例中,$4=Aug $5=08。)
现在,我想将“Aug 08”放入 date
命令中,以将格式更改为数字日期。
看起来像这样:
date -j -f %b\ %d Aug\ 08 +%m-%d
输出:08-08
我的问题是,如何将其添加到我的管道中并使用 awk 变量 $4 和 $5,其中“Aug 08”位于该日期命令中?
So I need to convert a date to a different format. With a bash pipeline, I'm taking the date from the last console login, and pulling the relevant bits out with awk, like so:
last $USER | grep console | head -1 | awk '{print $4, $5}'
Which outputs: Aug 08
($4=Aug $5=08, in this case.)
Now, I want to take 'Aug 08' and put it into a date
command to change the format to a numerical date.
Which would look something like this:
date -j -f %b\ %d Aug\ 08 +%m-%d
Outputs: 08-08
The question I have is, how do I add that to my pipeline and use the awk variables $4 and $5 where 'Aug 08' is in that date command?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您只需要使用命令替换:
Bash 将评估
$(...)
内的命令/管道并将结果放在那里。You just need to use command substitution:
Bash will evaluate the command/pipeline inside the
$(...)
and place the result there.让
awk
调用date
:或者使用进程替换来检索
awk
的输出:Get
awk
to calldate
:Or use process substitution to retrieve the output from
awk
:使用反引号应该可以使长管道的输出保持最新状态。
Using back ticks should work to get the output of your long pipeline into date.
我猜你已经尝试过这个了吗?
I'm guessing you already tried this?