ループを使用してテキストファイルにユーザー入力を書き込む

ループを使用してテキストファイルにユーザー入力を書き込む
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]

関連情報