Там в файл с несколько строк, содержащих текст и либо даты или отметки времени:Синтаксический метка времени с помощью СЕПГ и встроенной команды
...
string1-20141001
string2-1414368000000
string3-1414454400000
...
Я хочу, чтобы быстро преобразовать метки времени к датам, например:
$ date -d @1414368000 +"%Y%m%d"
20141027
и я хочу сделать это динамически с помощью sed
или подобного инструмента командной строки. Для тестирования я безуспешно использовать это:
$ echo "something-1414454400000" | sed "s/-\(..........\)...$/-$(date -d @\\1 +'%Y%m%d')/"
date: invalid date '@\\1'
something-
но echo
ИНГ, кажется, работает:
$ echo "something-1414454400000" | sed "s/-\(..........\)...$/-$(echo \\1)/"
something-1414454400
так, что можно было бы сделать?
«но эхо, похоже, работает» - нет. –
у вас есть фундаментальное недоразумение, оболочка сначала оценивает аргументы перед вызовом приложения. просто «эхо», что вы хотели пройти, и вы увидите. –
'bash -x' поможет вам это понять. –