2016-08-07 10 views
1

값 (이 경우 "---")을 검색하는 방법을 알아 내려고하고 모든 진행 열을 변경합니다 "---"와 같은 행에. 나는 위해를 사용하는 방법을 찾을 필요가모든 열의 데이터를 일치시키고 동일한 행의 다른 모든 열에 대한 데이터 변경

awk '{if ($(NF-1)=="---")$NF="---"}{print $0}' file 

ie-,

나는 AWK와 함께이 일을 찾고있다,하지만 난 알려진 필드를 확인하는 방법을 알아낼 수 있습니다

1) 값

2) 필드의 값을 찾기 위해 모든 필드를 검색하고, 동일한 기록을 모두 진행 필드를 변경 : 루프, 나에 (즉, 내가 부탁 해요 이유) 생각특정 값 (예 : "---")

모든 아이디어는 높이 평가됩니다. 그리고 내 말씨가이 모든 시행 착오 시도를 전달하지 않는다면 사과드립니다. 나는 모든 사람들에게 보이지 않는 것을 보여주는 대신에 무엇이 효과가 있는지 알고 싶습니다.

$ cat file.csv 
a,b,---,d,e 
1,---,3,4,5 

---에 대한보고 --- 동일한 행의 모든 ​​위의 열을 변경하려면 :

답변

3

의이 테스트 파일 생각해 보자

$ awk -F, '{f=0; for (i=NF;i>=1;i--) {$i=(f?"---":$i); f=($i=="---")}} 1' OFS=, file.csv 
---,---,---,d,e 
---,---,3,4,5 

을 다른 방법으로, ---에 대한보고 및 이후의 모든 변경 같은 행의 (후속) 열을 --- :

$ awk -F, '{f=0; for (i=1;i<=NF;i++) {$i=(f?"---":$i); f=($i=="---")}} 1' OFS=, file.csv 
a,b,---,---,--- 
1,---,---,---,--- 
+1

정확히 내가 찾고있는 것입니다. Patten이 할 수있는 Awk 한 개의 라이너가 앞선 데이터와 진행되는 데이터의 형식을 변경하고 변경합니다. 고맙습니다. –