仅打印字符串中的第一个字段

时间:2013-02-22 12:44:49

标签: unix sed awk field cut

我的日期为12/12/2013 14:32我想将其转换为12/12/2013。 字符串可以是1/1/2013 12:321/10/2013 23:41我只需要日期部分。

3 个答案:

答案 0 :(得分:53)

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

答案 1 :(得分:12)

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

print $1 - &gt;打印提供的字符串的第一列。 12/12/2013

print $2 - &gt;打印提供的字符串的第二列。 14:32

默认情况下,awk将空格字符视为分隔符。

答案 2 :(得分:3)

如果您的日期字符串存储在变量中,那么您不需要运行cutawksed等外部程序,因为像{{1}这样的现代shell可以直接执行string manipulation,效率更高。

例如,在bash中:

bash