한 파일에서 grep하고 매치마다 명령을 실행하는 방법은 무엇입니까?명령을 grep하고 실행하는 방법 (매치마다)
파일 :
내가foo
에 모든 경기를 예를
date
에 대한 실행 실행하려는
foo
bar
42
foo
bar
.
시도가 작동하지 않습니다 다음은
grep file foo | date %s.%N
어떻게 그렇게? 추가 판독 가능 스크립트에서
한 파일에서 grep하고 매치마다 명령을 실행하는 방법은 무엇입니까?명령을 grep하고 실행하는 방법 (매치마다)
파일 :
내가foo
에 모든 경기를 예를
date
에 대한 실행 실행하려는
foo
bar
42
foo
bar
.
시도가 작동하지 않습니다 다음은
grep file foo | date %s.%N
어떻게 그렇게? 추가 판독 가능 스크립트에서
grep file foo | while read line ; do echo "$line" | date %s.%N ; done
: 각 입력 라인
grep file foo | while read line
do
echo "$line" | date %s.%N
done
, read
변수 $line
에 값을 넣어, 상기 while
문 do
및 done
사이 루프 본문을 실행할 것이다. 값이 stdin이 아닌 변수에 있기 때문에 echo
을 사용하여 stdin으로 다시 푸시므로, date %s.%N "$line"
을 수행하면됩니다.
for
항상 공간에 휴식이 파일의 목록을 읽어 악몽이되기 때문에, 유사하다 for line in `grep file foo`
를 사용하지 마십시오 :
find . -iname "*blah*.dat" | while read filename; do ....
가 for
와 함께 실패합니다.
정말 필요한 것은 xargs 명령입니다. 일부 파일을 일치하고 Cygwin에서 환경
$ find $(pwd) -type f -exec ls -1 {} \; | grep '\(_en\|_es\|_zh\)\.\(path\)$' | xargs cygpath -w
grep command_string file | sh -
안녕하세요 @ 제임스, 안녕하세요. 오신 것을 환영합니다. 답변을 개선하고 upvoted가 될 가능성이 더 높아지는 설명을 추가하는 것이 좋습니다. –
없음 문제에서 전체 Windows 경로에 일치하는 변환 http://en.wikipedia.org/wiki/Xargs
예. grep이 파일에서 여러 패턴을 읽을 수있는 기능 (-f) 또는 stdin에서 명령을 생성하는 xargs의 기능을 포함하여 대부분의 대량 작업을위한 유닉스 도구가 있습니다. –
점검이되지 수 : 그렙 foo는 파일 ------- NAME 그렙, egrep을, fgrep, rgrep - 패턴 사용법 그렙 [옵션] PATTERN [FILE 일치하는 인쇄 라인 .. .] – Xofo
어떻게 스크립트를 실행할 수 있습니까? grep file foo | while read line do echo "$ line"| 날짜 % s. % N 완료 파일을 넣어야합니까? –