所以我需要一个日期转换为不同的格式。随着庆典的管道,我之日起,从上个控制台登录,并使用awk拉动相关位出来,像这样:

last $USER | grep console | head -1 | awk '{print $4, $5}'

,其输出:Aug 08 ($ 4 =八月$ 5 = 08,在这种情况下。)

现在,我要采取“8月08”,放入一个date命令的格式改变为数值日期。

这将是这个样子:

date -j -f %b\ %d Aug\ 08 +%m-%d

输出:08-08

我的问题是,我如何添加到我的管道并使用awk的变量$ 4和$ 5,其中“8月08”是在date命令?

有帮助吗?

解决方案

您只需要使用命令替换:

date ... $(last $USER | ... | awk '...') ...

击将评估$(...)内的命令/管线,并将结果在那里。

其他提示

获取awk到呼叫date

... | awk '{system("date -j -f %b\ %d \"" $4 $5 "\" +%b-%d")}'

或者使用过程中的取代来检索awk的输出:

date -j -f %b\ %d "$(... | awk '{print $4, $5}')" +%b-%d

我猜你已经尝试过这个?

last $USER | grep console | head -1 | awk | date -j -f %b\ %d $4 $5 +%b-%d

使用反引号应该努力让你的长输管线到日期的输出。

date -j -f %b\ %d \`last $USER | grep console | head -1 | awk '{print $4, $5}'\` +%b-%d
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top