在一个字符串只打印出第一场(Printing only the first field in a s

2019-07-20 08:49发布

我有一个日期12/12/2013 14:32我想把它转换成唯一12/12/2013 。 该字符串可以是1/1/2013 12:321/10/2013 23:41我只需要日期部分。

Answer 1:

您可以使用各种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


Answer 2:

$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013

print $1 - >打印所提供的字符串的第一列。 12/12/2013

print $2 - >打印所提供的字符串的第二列中。 14:32

默认情况下,AWK把空格字符作为分隔符。



Answer 3:

如果您的日期字符串被存储在一个变量,那么你就不需要像运行外部程序cutawksed ,因为像现代shell bash可以执行字符串操作 ,直接是更有效的。

例如,在bash:

$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013


文章来源: Printing only the first field in a string