AWK-скрипт для запуска процесса как цикла для нескольких текстовых файлов

Удаляет самое длинное совпадение подстроки *\nс начала строки, хранящейся в MY_INPUT. Обратите внимание, что *является подстановочным знаком, поэтому в результате каждая строка MY_INPUTотбрасывается, кроме последней, которая хранится в MY_VAR. $перед '\n'помещается туда только для того, чтобы оценить \nи рассматривать его как новую строку вместо буквальных символов \и n.

Некоторые примеры:

MY_INPUT            MY_VAR
"a\nb\nc"        -> "c"
"a\n"            -> ""
"abcde\n\n\ndef" -> "def"

Обратите внимание, :во втором примере последняя строка пуста, поэтому MY_VAR— пустая строка.


В соответствии с запросом это можно сделать другим способом:

tail -n1 <<< "$MY_INPUT"

или:

echo "$MY_INPUT" | tail -n1
0
21.02.2020, 13:15
1 ответ

Похоже, это все, что вам нужно (не проверено):

awk '
    FNR==1 { close(out); out=FILENAME; sub(/UH/,"HU",out) }
    FNR>3  { $1="G"; print > out }
' UH*
0
28.04.2021, 23:22

Теги

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