파일에서 5개의 연속된 "0"을 찾는 방법은 무엇입니까?

파일에서 5개의 연속된 "0"을 찾는 방법은 무엇입니까?

텍스트 파일에 다음 데이터가 있습니다.

Name,7/27,7/28,7/29,7/30,7/31,8/1,8/2,8/3,8/4
abc,5,3,8,8,0,0,2,0,11
def,6,7,0,0,0,0,0,2,5
ghi,1,3,5,2,0,0,5,3,6

어떤 파일("이름" 열은 파일 이름임)이 5개의 연속 출력을 제공하는지 알아내야 합니다 0. 이 경우에는 def.

답변1

아마도 구분 기호로 awk사용하여 에서 이 작업을 수행할 것입니다 ,.

$ awk -F, '/,0,0,0,0,0/{print $1}' file 
def

그러나 이것은 또한 다음과 같은 줄을 잡을 것입니다:

mno,6,7,0,0,0,0,0.5

이를 방지하려면 마지막 항목 0뒤에 a ,또는 줄 끝이 오는 경우에만 일치하십시오.

awk -F, '/,0,0,0,0,0(,|$)/{print $1}' file 

답변2

grep '0,0,0,0,0' file.txt

일치하는 줄을 인쇄합니다.def,6,7,0,0,0,0,0,2,5

grep '0,0,0,0,0' file.txt | cut -d, -f1

다음을 사용하여 첫 번째 필드를 인쇄합니다 ,.def

답변3

원하는 출력을 얻으려면 다음 명령을 시도해 볼 수 있습니다.

누즈드

$ sed -nE 'G;y/,/\n/;/(\n0){5}\n/P' file

$ awk -F, '/(,0){5}(,|$)/ && $0 =$1""' file

$ grep -oP '^[^,]+(?=.*?(,0){5}(,|$))' file 

PC Re 모드에서 Grep을 열면 ,0grep의 출력 패키지에 포함되지 않도록 미리보기에서 5개의 연속 항목을 찾습니다.

답변4

sed는 다음을 수행할 수 있습니다.

sed -n '/,0,0,0,0,0[,$]/p' file.txt | sed 's/,.*//'

관련 정보