I have a date as 12/12/2013 14:32
I want to convert it into only 12/12/2013
.
The string can be 1/1/2013 12:32
or 1/10/2013 23:41
I need only the date part.
You can do this easily with a variety of Unix tools:
$ 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
Suresh Anbarasan
$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013
print $1
--> Prints first column of the supplied string. 12/12/2013
print $2
--> Prints second column of the supplied string. 14:32
By default, awk treats the space character as the delimiter.
If your date string is stored in a variable, then you don't need to run an external program like cut
, awk
or sed
, because modern shells like bash
can perform string manipulation directly which is more efficient.
For example, in bash:
$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013
来源:https://stackoverflow.com/questions/15024561/printing-only-the-first-field-in-a-string