내 파일에는 아래와 같이 파이프로 구분된 줄이 포함되어 있습니다.
45|abc|NULL|hol|
Gha|ghsk|NULL|gah|
세 번째 열 값(비어 있음)을 하이픈(-)과 같은 값으로 바꾸려면 어떻게 해야 합니까? 세 번째 열의 값은 고유하지 않습니다. 도움을 주시면 대단히 감사하겠습니다.
답변1
awk -F'|' '{ $3 = ($3 == "NULL" ? "-" : $3) } 1' OFS='|' file
|
파일의 구분 기호를 유지 하려면 입력 및 출력 필드 구분 기호를 설정하세요.- 세 번째 필드가 "NULL"과 같은지 확인하고, 그렇지 않은 경우 값을 할당하고
-
값을 그대로 둡니다. 1
마지막으로 테스트 성공 여부에 따라 세 번째 열을 수정하거나 수정하지 않고 행을 인쇄합니다.($3=="NULL"?"-":$3)
$3=="NULL"
조건이 참인지 확인하는 데 사용되는 삼항 연산자입니다 . true이면?
할당하고-
, false이면:
필드를 변경하지 않고 그대로 둡니다.
시험
$ cat positioned
45|abc|NULL|hol|
Gha|ghsk|NULL|gah
$ awk -F'|' '{ $3 = ($3 == "NULL" ? "-" : $3) } 1' OFS='|' positioned
45|abc|-|hol|
Gha|ghsk|-|gah
$ cat positioned
45|abc|NULL|hol|
Gha|ghsk|NULL|gah
95|xyz|NonNULL|hol|
asdf|ghsk|NonNULL|afs|
$ awk -F'|' '{ $3 = ($3 == "NULL" ? "-" : $3) } 1' OFS='|' positioned
45|abc|-|hol|
Gha|ghsk|-|gah
95|xyz|NonNULL|hol|
asdf|ghsk|NonNULL|afs|