使用 unix 中的字段之间的水平制表位打印年,月和日期的命令是什么?以下是正确答案吗?
%date +“%y%m%d”
我知道tat $ date +“%y-%m-%d”将给出88-05-21
答案 0 :(得分:3)
如果你使用bash shell:
$ date +"%y"$'\t'"%m"$'\t'"%d"
10 12 15
请注意$'\t'
shell表示法,它会生成一个文字水平制表符。
编辑:
许多命令(例如printf(1)
)支持某种表示法来指定任何特殊字符,例如水平制表符:
$ printf 'x\ty\n'
x y
如果命令不支持这样的命令,处理它的方法是在格式字符串中嵌入一个文字水平制表符。不幸的是,外壳倾向于特别处理标签键,例如执行自动完成。
在bash(也许是其他类似sh的shell)中,有一个方便的符号如$'\t'
来解决这个问题。
另一种方法是调用shell的“引用模式”。在许多shell(包括bash和tcsh)中,可以在按下特殊字符之前按Ctrl-V来完成。这将仅为下一个字符启用shell的引用模式:
$ echo 'x q'
x q
上面的结果可以通过在x后按Ctrl-V并按下Tab键来实现。
答案 1 :(得分:2)
要打印包含空格的日期,您需要做的只是:date "+%y %m %d"
。我强烈建议您查看man date
的手册页(date
)。