Печать только первого поля в строке
У меня есть дата как 12/12/2013 14:32
Я хочу преобразовать ее только в 12/12/2013
.
Строка может быть 1/1/2013 12:32
или 1/10/2013 23:41
Мне нужна только часть даты.
Ответы
Ответ 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
Ответ 2
$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013
print $1
→ Распечатывает первый столбец поставляемой строки. 12/12/2013
print $2
→ Печатает второй столбец поставляемой строки. 14:32
По умолчанию awk обрабатывает символ пробела как разделитель.
Ответ 3
Если ваша строка даты хранится в переменной, вам не нужно запускать внешнюю программу, например cut
, awk
или sed
, потому что современные оболочки, такие как bash
, могут выполнять манипуляция струнами, которая более эффективна.
Например, в bash:
$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013