hadoop 명령을 실행하고 출력을 txt 파일에 저장하고 있습니다. hadoop 명령의 특정 부분이 텍스트 파일에 있기를 원합니다.
#!/bin/sh
hadoop fs -ls /projects/abcd/ | egrep 'delta|snapshot' > /homes/abcd/tools/list_of_feeds.txt
'list_of_feeds.txt'의 내용-
drwxr-x--- - abcd users 0 2013-02-05 12:16 /projects/abcd/test1_delta
drwxr-x--- - abcd users 0 2013-02-06 00:21 /projects/abcd/test2_snapshot
나는 단지 파일의 내용이-
test1_delta
test2_snapshot
이 파일을 어떻게 구문 분석하거나 쉘에서 수행합니까?
감사
awk
필드를 선택하는 데 유용하고 쉽습니다.
hadoop fs -ls /projects/abcd/ | awk -F '/' '/delta|snapshot/ {print $NF}' > /homes/abcd/tools/list_of_feeds.txt
그러나 for 루프가 무엇을하고 있는지 전혀 모릅니다.
$NF
경로 이름의 구성 요소 수를 하드 코딩하는 것은 어리석은 일이기 때문에 마지막 필드를 선택합니다.
그리고 분명히 egrep
와 함께 필요하다 awk
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다