Я пытаюсь найти способ извлечь скрипты из созданного файла журнала.Извлечь определенную строку кода с помощью awk (или не awk) из файла журнала
Я застрял в месте, где команда вызывает несколько файлов, и сценарий разделяет их на конечную «\» для непрерывности строк. Например, образец скрипта:
my_command -option \
file1 \
file2 \
file3
my_command2 .. ..
Это выглядело легко, но как-то трюк не бить меня в этот момент. Пожалуйста, помогите. Каждая строка в журнале начинается с определенным идентификатором для команды, как:
:: Script_Command:: my_command -option \
:: file1 \
:: file2 \
:: file3
:: Info lines....
:: More info lines ...
:: Script_Command:: my_command2 ... ..
:: Info lines ...
Так что я использовал:
awk '/Script_Command/ {print }'
И тогда я попытался объединить его с если условие с:
awk '/Script_Command/ {print substr(length(),1)}'
Но все это не падает на свои места. Пожалуйста, помогите.
Edit: Ближайший я получил здесь:
awk '{if ($NF=="\\" || == "Script_Command::") print ;}' file
Он по-прежнему оставляет линию file3, как он ничего не соответствует.
Чистое намерение: 1. Когда Script_Command сопоставляется, печатайте строку. 2. При совпадении «\» напечатайте следующую строку. 3. Когда оба совпадают, печатайте линию и следующую строку.
Это решение выглядит многообещающим. Когда попробовал, сначала он говорит: be: Событие не найдено. Затем в следующей попытке я получаю: sed: -e выражение # 1, char 20: неизвестная команда: '; ' У меня есть версия GNU 4.2.1 – ABX
Не забудьте указать сценарий? RIght теперь '!' Расширяется, что не должно: 'sed -n '/ Script_Command/{: a;/\\ $ /! Be; N; ba;: e; p;}'' – andlrc
Да, я делая это. – ABX