在unix中使用标签空间的日期

时间:2010-12-15 17:19:30

标签: unix terminal

使用 unix 中的字段之间的水平制表位打印年,月和日期的命令是什么?以下是正确答案吗?

%date +“%y%m%d”

我知道tat $ date +“%y-%m-%d”将给出88-05-21

2 个答案:

答案 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)。