다음과 같은 file.txt가 있습니다.
1
2
3
4
5
6
awk 명령을 사용하여 새 열에 값(Apple)을 추가하려면 다음을 수행할 수 있습니다.
awk -v RS='\r\n' 'BEGIN { OFS = " " } {print $0, "Apple"}' file.txt > file_new.txt
그러면 다음이 제공됩니다.
1 Apple
2 Apple
3 Apple
4 Apple
5 Apple
6 Apple
이제 다음과 같은 출력을 원한다고 가정해 보겠습니다.
1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana
awk 명령을 수정하는 방법은 무엇입니까?
답변1
파일은 다음과 같습니다.
1
2
3
4
5
6
당신은 그것을 사용할 수 있습니다 :
awk 'BEGIN { OFS = " "; a["1"]="Apple";a["2"]="Orange";a["3"]="Banana"; } {print $0,a[int(NR/2 + NR%2)]}' file
당신은 얻을 것이다:
1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana
답변2
약간 해킹적이지만 다음을 getline
사용하여 현재 레코드 번호를 기반으로 표준 입력에서 새로운 과일을 읽을 수 있습니다.
printf 'Apple\nOrange\nBanana' |
awk -v n=2 'NR%n == 1 {getline x < "/dev/stdin" } {print $0, x}' file.txt
1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana