Я понял, как передать переменную в шаблоне внутри переменной внутри awk:
grep_line_new_file='create table "informix".issue'
new_file_below=`awk 'BEGIN { FS="\n[()]"; RS=";" } /'"$grep_line_new_file"'/ { print ")"$NF";"}' test`
вывод:
create table "informix".issue
) in datadbs extent size 16 next size 16 lock mode row;
perl -0pe 's/\h+\d+\h*\n\h+/,/g; s/\h+\d+//g' ex
\n...пробелы
на ,
perl -lane '
if ( @F == 4 ) { # num fields are 4
print $result if $. > 1; # in case we"re not @ BOF, show result
$result = join "\t", @F[0,2]; # initialize result
} else {
$result .= ",$F[0]"; # append result
}
eof && print $result; # on the last line, show result
' filename
Стандартное awk
решение:
awk 'NF==4 && NR>1 {printf "\n" ; }
NF==4 { printf "%-10s %s",$1,$3}
NF==2 { printf ",%s",$1}
END { printf "\n" ; } '
где
NF
номер поля (номер столбца ), NR
номер записи (номер строки ), printf
не печатает завершающую новую строку.