所以我需要将日期转换为不同的格式.使用bash管道,我从上次控制台登录中获取日期,并使用awk拉出相关位,如下所示:
last $USER | grep console | head -1 | awk '{print $4, $5}'
Run Code Online (Sandbox Code Playgroud)
哪个输出:Aug 08
(4美元= 8月5美元= 08,在这种情况下.)
现在,我想采取'Aug 08'并将其放入date命令,将格式更改为数字日期.
看起来像这样:
date -j -f %b\ %d Aug\ 08 +%m-%d
Run Code Online (Sandbox Code Playgroud)
产出:08-08
我的问题是,如何将其添加到我的管道并使用awk变量$ 4和$ 5,其中'Aug 08'在该日期命令中?
您只需要使用命令替换:
date ... $(last $USER | ... | awk '...') ...
Run Code Online (Sandbox Code Playgroud)
Bash将评估其中的命令/管道$(...)并将结果放在那里.
获取awk到的呼叫date:
... | awk '{system("date -j -f %b\ %d \"" $4 $5 "\" +%b-%d")}'
Run Code Online (Sandbox Code Playgroud)
或使用进程替换从awk以下位置检索输出:
date -j -f %b\ %d "$(... | awk '{print $4, $5}')" +%b-%d
Run Code Online (Sandbox Code Playgroud)