在两个单词之间打印月份

bla*_*awk 3 awk string date

我正在编写一些脚本并且遇到了一些命令。我想将一些字符串(月份)放入现有文本中的特定位置。例子:

Left Right 
Run Code Online (Sandbox Code Playgroud)

如何在左右之间放置一些文本?我试过打印,但它不能像我想要的那样工作。

date +'%b' | awk '{print "Left " $1} {print "Right"}'
Run Code Online (Sandbox Code Playgroud)

这一行添加了我不想添加的新行。

Left Jun
Right
Run Code Online (Sandbox Code Playgroud)

小智 13

date "+Left %b Right"
Run Code Online (Sandbox Code Playgroud)

您可以将字符串放在date命令本身中。未跨操作系统验证,但它在GNU date.


ter*_*don 8

那是因为默认情况下插入换行符的print命令awk。您可以一次打印整个内容,以便只使用一次print调用:

$ date +'%b' | awk '{print "Left " $1 " Right"}'
Left Jun Right
Run Code Online (Sandbox Code Playgroud)

或者printf改用:

$ date +'%b' | awk '{printf "Left "; printf "%s", $1; printf " Right\n"}'
Left Jun Right
Run Code Online (Sandbox Code Playgroud)

printf在这里使用是没有意义的,我只是将它作为示例包含在内,并表明它\n默认不添加 a 。