在最后一行之后将模式插入文本文件

在最后一行之后将模式插入文本文件

我使用下面的代码将特定行之后的行插入到用户变量的文本文件中。

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块(如果存在),然后退出脚本。

相关内容