루프를 사용하여 텍스트 파일에 사용자 입력 쓰기

루프를 사용하여 텍스트 파일에 사용자 입력 쓰기
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]

관련 정보