@srgsrg1901

Awk, как объединить столбцы при передаче в shell?

Добрый день
4 поле 15-Aug-2019
5 поле 00:24:38
выражение работает
awk '{z=system("date --date="$4" +%s")} {printz}'
это уже нет
awk '{z=system("date --date="$4" "$5" +%s")} {printz}'

Try 'date --help' for more information.
date: extra operand '+%s'

второе поле воспринимается как аргумент
Как правильно заэкранировать?
Все комбинации скобок и кавычек я перебрал
  • Вопрос задан
  • 401 просмотр
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
$ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{z="date -d \""$4" "$5"\" \"+%s\""; z | getline z; print z}'
1565817878

ну или вывести в самой строке
$ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{z="date -d \""$4" "$5"\" \"+%s\""; z | getline z; $4=z;$5="";print}'
a1 a2 a3 1565817878  a6 ...

немного покороче
$ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{"date -d \""$4" "$5"\" \"+%s\""|getline $4;$5="";print}'
a1 a2 a3 1565817878  a6 ...


upd. (исправление)
$ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{"date -d \""$4" "$5"\" \"+%s\"" | getline z; $4=z;$5="";print}'
a1 a2 a3 1565817878  a6 ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы