가정: 레코드에는 40개의 열이 있습니다. 35열을 35열의 내용과 "$" 기호로 바꾸도록 35열을 바꾸고 싶습니다. 내가 생각해낸 내용은 다음과 같습니다.
awk '{print $1" "$2" "...$35"$ "$36...$40}'
작동하지만 열 수가 10k만큼 큰 경우에는 실현 가능하지 않습니다. 이를 수행하려면 더 나은 방법이 필요합니다.
답변1
다음을 수행할 수 있습니다.
awk '$35=$35"$"'
답변2
이를 수행하는 더 효율적인 방법이 있을 수 있습니다. 이 경고와 함께:
awk '{$35 = $35"$"; print}' infile > outfile
답변3
원래 필드 구분 기호를 유지하기 위해 이렇게 했습니다. 비워두려는 열은 $12입니다.
awk -F"\t" '{OFS=FS}{ $12="" ; print }' infile.txt > outfile.txt
가능한 경우 을 사용하여 gawk -i
파일을 그 자리에서 편집할 수 있습니다.
답변4
"승인된" 답변을 사용할 때 문제가 발생합니다. 이는 파일의 첫 번째 열만 바꾸는 것이 아닙니다. 나는 다음과 같은 일반 명령을 사용합니다.
awk '$[column]="[replace]"' FS=, OFS=, inputfile > outputfile
어디:
[column]
= 변경하려는 열, 1부터 시작(0 대신)[replace]
= 바꾸려는 텍스트