답변:
pv
파이프에서 작동 (명령이 아님)-파이프 라인의 특정 지점을 지나간 데이터 양을 나타내는 볼륨 게이지입니다.
grep 명령은 파이프 라인 이 아닙니다 ( |
- 아무것도pipe operator
찾을 수 없습니다) – 단지 하나의 명령 만 수행합니다. pv
여기서 당신을 도울 수 없습니다, 당신 grep
은 실제로 모든 입력 파일에서 그 일을하고 있다는 것을 믿어야 합니다.
당신은 할 수 찾기, 태양 광 발전, xargs를 & 그렙 (과 함께 뭔가 자갈 find . -name "*.rb" | pv | xargs grep [regex]
좋아 보이는 유망한 수 있습니다,하지만 당신은 말할 것 pv
얼마나 큰 find
가 의미있는 결과를 제공하는 출력입니다.
솔직히 그것은 가치보다 더 많은 일처럼 보입니다. grep을 실행 하고 참을성있게 기다린 다음 출력이 완료되면 처리하십시오.
두 가지 방법 더 :
for file in *.rb; do echo $file; grep "string" $file >> output.txt; done
또는 원래 명령이 실행되는 동안 다른 쉘에서 grep 명령의 pid를 찾은 후 다음을 수행하십시오.
strace -q -s 256 -e trace=open -p [pid] 2>&1 | head
위의 두 가지 모두 grep 명령이 현재 작업중인 파일을 보여줍니다. 다음을 사용하여 총 파일 수를 찾을 수 있습니다.
ls -l *.rb | wc -l
마지막으로 이것을 사용하여 현재 파일이 목록에있는 숫자를 찾으십시오.
ls -l *.rb | grep -n [the current filename]
추신 : 내 대답은 모든 파일이 단일 디렉토리에 있다고 가정합니다. 그렇지 않은 경우, 당신은 사용해야 할 것입니다 find
대신 ls
하고 *.rb
thinice 제안한다.