Ich habe ein Datum als 12/12/2013 14:32
Ich möchte es in nur 12/12/2013
konvertieren. Die Zeichenfolge kann 1/1/2013 12:32
oder 1/10/2013 23:41
Ich brauche nur das Datum Teil.Drucken nur das erste Feld in einer Zeichenfolge
13
A
Antwort
34
Sie können dies mit einer Vielzahl von Unix-Tools leicht tun:
$ 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
Wenn Sie das Datum String in einer Variablen gespeichert ist, dann müssen Sie nicht ein externes Programm wie cut
, awk
oder sed
laufen , weil moderne Shells wie bash
string manipulation direkt ausführen können, was effizienter ist.
Zum Beispiel in bash:
$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013
3
$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013
print $1
-> Druckt erste Spalte des angegebenen String. 12/12/2013
print $2
-> Druckt die zweite Spalte der angegebenen Zeichenfolge. 14:32
Standardmäßig behandelt awk das Leerzeichen als Trennzeichen.