2010-06-08 3 views
2

와 텍스트 파일에 행 찾기, 나는 10 개 이상을 가진 모든 행을 찾으려면 열 (9 개 이상의 탭). 각 행은 CR-LF로 끝납니다. 코드/접근 골프 : 10 탭으로 구분 된 열 (즉, 9 탭)를 포함하도록되어있는 텍스트 파일을 감안할 때 너무 많은 열

위 이외의 데이터 필드의 폭, 등등에 대해 아무것도지지 않는다. 접근 및/또는 작업 코드에 대한

의견은 매우 감사하겠습니다. 기분 나쁜 라인의 라인 번호 인쇄를위한 보너스.

미리 감사드립니다.

EDIT으로 작성자 (감사합니다!)가 지적한대로 데이터에 탭 또는 CRLF가 없다고 가정 할 수 있습니다. 행 번호와

+0

을, 당신은하지 않을거야 위의 정보에 따라 신뢰할 수있는 방식으로이를 수행 할 수 있어야합니다. 그렇지 않으면 CSV 일뿐입니다. 모든 파서가 할 것입니다. – user358390

답변

3
awk -F'\t' 'NF>10{print}' <filename> 

또는 :

awk -F'\t' 'NF>10{print NR; print}' <filename> 
+0

수상작, 우승자, 닭고기 저녁 식사. 나는 지정할 필요가 있다고 생각한다. awk -F "\ t" 'NF> 10 {print NR ":"; 인쇄} ''보다 하지만, 다른 하나는, 작동하는 것 같다. 감사. – awshepard

+0

아, 네 말이 맞아. 필드 구분 기호를 지정하지 않으면 필드에 공백이 포함되지 않은 경우에만 작동합니다. 내 대답이 업데이트됩니다. – danben

4

그냥 정규 표현식을 사용하십시오 "데이터"탭을 포함하거나 CRLF의 경우

(.*\t){10,}