【问题标题】:date with tabs space in between in unix在 unix 之间有制表符空格的日期
【发布时间】:2010-12-15 17:19:29
【问题描述】:

unix的字段之间用水平制表符打印年、月、日的命令是什么?下面的答案正确吗??

%date +"%y %m %d"

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

【问题讨论】:

  • 很好奇,如果你已经有了可能的答案,为什么还要问它是否有效而不是仅仅尝试呢?

标签: unix terminal


【解决方案1】:

如果你使用 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之后和tab键之前按Ctrl-V来实现。

【讨论】:

  • @user238284:请告诉我们您正在使用哪个操作系统和哪个外壳 - 否则我们无法真正回答。
【解决方案2】:

要打印带有空格的日期,您只需:date "+%y %m %d"。我强烈建议您查看 date 的手册页 (man date)。

【讨论】:

  • 请注意,OP 希望将水平制表符作为分隔符,而不是空格。
  • 糟糕,我的错!出于某种原因,在阅读问题和写下答案之间,我有点不知所措。
猜你喜欢
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 2011-01-14
相关资源
最近更新 更多