使用循环将用户输入写入文本文件

使用循环将用户输入写入文本文件
echo -n "##### STATIONS? #######"
read station
awk -v input="$station" '
BEGIN {
        n = split(tolower(input), user)
        fmt = "%-4s\n"
}
    {print}
    /stab_site clear/ {
        for (i=1; i<=n; i++)
            printf fmt, "stab_site" user[i]
        exit
    }
' ./data > data_2

假设用户的输入:ankr ista对于电台。代码执行后,在数据文件中的“ stab_site clear”行之后,用户的输入写入如下;

stab_siteankr
stab_siteista

我需要在代码中的“stab_site”和“station_ids”之间留一个空格。我还需要在从行首开始一个空格之后编写各行,如下所示;

stab_site ankr
stab_site ista

答案1

让分裂

printf fmt, "stab_site" user[i]
  • "stab_site" user[i]stab_sitenakr由于站点后没有空间,因此将进行
  • printf fmt, "stab_site" user[i]正在转向
  • print "%-4s\n" , stab_sitenakr打印左对齐stab_sitenakr

也许你正在寻找

printf fmt, "stab_site " user[i]

或(根据OP的要求)

printf " %s %s\n", "stab_site", user[i]

相关内容