escrita da entrada do usuário com loop no arquivo de texto

0
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

Vamos supor a entrada do usuário: ankr ista para as estações. Após a execução dos códigos, no arquivo de dados, após a linha " stab_site clear ", a entrada do usuário é escrita da seguinte forma:

stab_siteankr
stab_siteista

Eu preciso fornecer um espaço entre "stab_site" e "station_ids" nos códigos. Eu também preciso escrever as linhas depois de um espaço do começo da linha como segue:

stab_site ankr
stab_site ista
    
por deepblue_86 13.12.2015 / 09:55

1 resposta

1

deixe dividir

printf fmt, "stab_site" user[i]
  • "stab_site" user[i] fará stab_sitenakr , pois não há espaço após o site
  • printf fmt, "stab_site" user[i] está em
  • print "%-4s\n" , stab_sitenakr , impressão alinhada à esquerda stab_sitenakr

talvez você esteja procurando

printf fmt, "stab_site " user[i]

ou (de acordo com o pedido do OP)

printf " %s %s\n", "stab_site", user[i]
    
por 13.12.2015 / 10:03