HDFS에 피드가 있습니다.
세 번째 열이 비어 있지 않은 행을 찾아야 합니다.
구분 기호로 구분된 피드|
SQL에 해당
select * from feed_table where column_3 is not null;
입력하다:
1|abc|123
2|def|
3|ff|124
4|gh|
출력: 여기의 세 번째 열은 비어 있지 않습니다.
1|abc|123
3|ff|124
답변1
awk
이 작업 에 사용할 수 있습니다 . awk의 구분 기호를 다음으로 설정한 |
다음 세 번째 열이 빈 문자열이 아닌지 확인하세요.
$ cat /tmp/foo
1|abc|123
2|def|
3|ff|124
4|gh|
$ awk -F'|' '$3 != ""' /tmp/foo
1|abc|123
3|ff|124
답변2
두 가지 grep
옵션:
grep -v '|$' < input
위에서 찾은 줄아니요끝에 튜브가 있습니다. 데이터 파일에오직세 개의 열이 있는 경우 마지막(두 번째) 파이프 이후에 데이터가 없는 행을 찾는(제외) 단축키입니다.
grep '|[^|].*|.' < input
위의 내용은 좀 더 엄격합니다. 파이프 기호가 있어야 하고 그 뒤에 [^|]
파이프 기호( ) 이외의 기호가 오고 그 뒤에 파이프 기호가 옵니다.무엇( .
). 이렇게 하면 빈 공간이 허용됩니다.첫 번째대지.