awk 명령의 출력 형식 지정

awk 명령의 출력 형식 지정

파일에서 입력을 받는 awk 명령의 출력 형식을 지정해야 합니다.

Sample Input File

123 ABC 12 23 34 45 56 67 78 13
234 DEF 23 34 45 56 67 78 89
345 GHI 34 45 56 67 78 90 10 01 99
456 JKL 45 56 67 78 90 12 34

Required Output

user | 123 ABC 12 | 23 34 45 56 67 78 13
user | 234 DEF 23 | 34 45 56 67 78 89
user | 345 GHI 34 | 45 56 67 78 90 10 01 99
user | 456 JKL 45 | 56 67 78 90 12 34

나는 나에게 몇 가지 오류를 준 다음 명령을 시도했습니다.

awk -v user=$user '{ printf user "|" $1" "$2" "$3 "|" "$1=$2=$3=""" $0;printf("\n"); }' sampleinputfile

Error Message

user | 123 ABC 12 | 23 34 45 56 67 78 13
user | 234 DEF 23 | 34 45 56 67 78 89
user | 345 GHI 34 | 45 56 67 78 90 10 01 99
user | 456 JKL 45 | 56 67 78 90 12 34
awk: (FILENAME=sampleinputfile FNR=4) fatal: not enough arguments to satisfy format string
        `user | 456 JKL 45|$1=$2=$3=456 JKL 45 56 67 78 90 12 34
                                                      ^ ran out for this one

답변1

일방 통행:

awk '{$3=$3" | ";print "user | "$0;}' file

관련 정보