【发布时间】:2013-02-08 02:14:29
【问题描述】:
我有一个日期为12/12/2013 14:32,我只想将其转换为12/12/2013。
字符串可以是1/1/2013 12:32 或1/10/2013 23:41 我只需要日期部分。
【问题讨论】:
我有一个日期为12/12/2013 14:32,我只想将其转换为12/12/2013。
字符串可以是1/1/2013 12:32 或1/10/2013 23:41 我只需要日期部分。
【问题讨论】:
您可以使用各种 Unix 工具轻松做到这一点:
$ cut -d' ' -f1 <<< "12/12/2013 14:32"
12/12/2013
$ awk '{print $1}' <<< "12/12/2013 14:32"
12/12/2013
$ sed 's/ .*//' <<< "12/12/2013 14:32"
12/12/2013
$ grep -o "^\S\+" <<< "12/12/2013 14:32"
12/12/2013
$ perl -lane 'print $F[0]' <<< "12/12/2013 14:32"
12/12/2013
【讨论】:
$ python -c "import sys; print(sys.argv[1].split()[0])" "12/12/2013 14:32"
$ python -c "import sys; print(sys.stdin.read().split()[0])" <<< "12/12/2013 14:32"
如果您的日期字符串存储在变量中,那么您不需要运行像cut、awk 或sed 这样的外部程序,因为像bash 这样的现代shell 可以直接执行string manipulation哪个更有效。
例如,在 bash 中:
$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013
【讨论】:
$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013
print $1 --> 打印提供的字符串的第一列。 12/12/2013
print $2 --> 打印提供的字符串的第二列。 14:32
默认情况下,awk 将空格字符视为分隔符。
【讨论】: