Задать вопрос
@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'

второе поле воспринимается как аргумент
Как правильно заэкранировать?
Все комбинации скобок и кавычек я перебрал
  • Вопрос задан
  • 429 просмотров
Подписаться 3 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия DevOps-инженер + ИИ
    5 месяцев
    Далее
Решения вопроса 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 ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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