我使用下面的代码将特定行之后的行插入到用户变量的文本文件中。
echo -n "WHICH STATIONS?"
read station
echo ${station[${i}]}
awk -v input="$station" '
BEGIN {
n = split(tolower(input), user)
pattern = " force %-4s npos 0. .0001\n" \
" force %-4s epos 0. .0001\n" \
" force %-4s upos 0. .0001\n"
}
{print}
/specific_line/ {
for (i=1; i<=n; i++)
printf pattern, j=user[i], j, j
exit
}
' ./data > data_2
我需要pattern
在数据文件的最后一行之后插入。我该如何修改上面的代码?
答案1
将其附加到脚本末尾awk
会导致退出前awk
执行循环:for
END {
for (i=1; i<=n; i++)
printf pattern, j=user[i], j, j
}
如果您想打印全部file 的行data
,那么您可能应该删除代码块exit
末尾的/specific_line/
,因为这会导致awk
停止处理输入并分支到该END
块(如果存在),然后退出脚本。