2016-09-05 4 views
2

a.txt이라는 파일이 100 줄 길이입니다. 이 100 개 라인의2 grep 명령을 wc에 파이핑

grep rake a.txt | wc #returns 10 lines 

grep -v rake a.txt | wc #returns 90 lines 

grep Rake a.txt | wc #returns 3 lines 

하나는 모두를 가지고,하지만 난 '레이크'와 라인을 원한다. 내가 시도했습니다 grep Rake a.txt | grep -v rake a.txt | wc 90 라인을 반환합니까?

'Rake'로 3 줄을 모두 찾으려면 grep에 파이프를 연결하고 'Rake'는 포함하지만 'rake'는 포함하지 않는 것을 확인한 다음 wc을 사용하여 줄 수를 계산하십시오. 리디렉션을 사용하여 다른 파일을 만든 다음 grep -v 새 파일을 만들 수는 있지만 그게 실제로 내 목표는 아닙니다. 나는 그것이 단순한 것이라고 확신하지만, 어떻게 명령을 수정합니까?

+0

일부 샘플 입력과 예상 출력이 유용합니다. –

답변

2

시도해 보았습니다 grep Rake a.txt | grep -v rake a.txt | wc 90 줄을 반환합니까?

파이핑 포인트는 명령 출력이 다음 피드를 피드하는 것입니다. 대신 파이핑을하고 grep -v rake a.txt이라고 말하면 이전 명령이 불필요합니다.

그래서 당신은 일반적으로 파이프에 필요

grep Rake a.txt | grep -v rake | wc 
#       ^
#        removed a.txt 

또한 awk을 사용하고 레이크하지 레이크를 포함하는 라인을 계산을 알 수 있습니다. 마지막으로 카운터를 인쇄하십시오.

awk '/Rake/ && !/rake/ {count++} END {print count+0}' a.txt 
+0

awk를 사용해보아야 할 것입니다. 나는 터미널을 사용하는 것에 매우 익숙하며 현재 일부 온라인 자원을 통해 기본을 배우고있다. 답변을 주셔서 감사합니다! – Aaron

+0

@Aaron 당신은 환영합니다 :) 유닉스 세계에 오신 것을 환영합니다. 많은 흥미로운 것들을 발견 할 수 있었습니까? – fedorqui

+1

왜 wc에 파이핑 대신 grep -c를 사용합니까? – VM17

2

파일을 다시 검색합니다 : 두 번째 grep에 파일 인수와

grep Rake a.txt | grep -v rake | wc -l 

, grep을 즉을 파일 인수를 포기하지 마십시오. 그것이 없으면 입력을 걸러 낼뿐입니다.

+0

알아두면 좋습니다. 현재 grep & piping을 소개 할 때 제가이 친절한 사실을 배제한 온라인 강의를 – Aaron