Удаляет самое длинное совпадение подстроки *\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
Похоже, это все, что вам нужно (не проверено):
awk '
FNR==1 { close(out); out=FILENAME; sub(/UH/,"HU",out) }
FNR>3 { $1="G"; print > out }
' UH*