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

use*_*444 31 unix awk field cut sed

我有一个约会,因为12/12/2013 14:32我想将其转换为仅12/12/2013.字符串可以是1/1/2013 12:32或者1/10/2013 23:41我只需要日期部分.

Chr*_*our 58

您可以使用各种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
Run Code Online (Sandbox Code Playgroud)


Sur*_*san 12

$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013
Run Code Online (Sandbox Code Playgroud)

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

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

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


dog*_*ane 5

如果您的日期字符串存储在变量中,那么您不需要运行cut,awk或等外部程序sed,因为现代 shellbash可以直接执行字符串操作,这样效率更高。

例如,在 bash 中:

$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013
Run Code Online (Sandbox Code Playgroud)