![특정 키워드가 일치하는 경우 테이블의 여러 열 값 변경](https://linux55.com/image/178085/%ED%8A%B9%EC%A0%95%20%ED%82%A4%EC%9B%8C%EB%93%9C%EA%B0%80%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EA%B2%BD%EC%9A%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98%20%EC%97%AC%EB%9F%AC%20%EC%97%B4%20%EA%B0%92%20%EB%B3%80%EA%B2%BD.png)
다음 형식의 데이터가 있습니다.
38%,1,0,0
32%,400,376.61,94.1525
54%,400,197,49.25
22%,1,1,100
두 번째 열이 1이면 두 번째, 세 번째, 네 번째 열을 NA로 변경합니다.
38%,NA,NA,NA
32%,400,376.61,94.1525
54%,400,197,49.25
22%,NA,NA,NA
먼저 하나의 열을 교체하려고 시도했지만 작동하지 않습니다.
awk -F, '$2==1 {$2="NA"}1' OFS=,
답변1
여러 열을 수정하려면 세미콜론으로 할당을 구분하세요.
$ awk -F, '$2==1 {$2="NA"; $3="NA"; $4="NA"}1' OFS=, file
38%,NA,NA,NA
32%,400,376.61,94.1525
54%,400,197,49.25
22%,NA,NA,NA
답변2
다음 명령을 사용해 볼 수 있습니다.
awk -F "," '$2 == "1" {$2=$3=$4="NA"}1' file
산출
38% NA NA NA
32%,400,376.61,94.1525
54%,400,197,49.25
22% NA NA NA
파이썬
#!/usr/bin/python
k=open('file','r')
for i in k:
j=i.split(",")
if (j[1] == "1"):
j[1]=j[2]=j[3]="NA"
print ",".join(j)
else:
print i.strip()
산출
38%,NA,NA,NA
32%,400,376.61,94.1525
54%,400,197,49.25
22%,NA,NA,NA