find | grep 을 쉘에서 사용하는 것과 file 를 만들어서 사용하는 결과가 왜 다를까요?

la9527의 이미지

find | grep 을 쉘에서 사용하는 것과 file 를 만들어서 사용하는 결과가 왜 다를까요?

예를 들어

find ../../Lib -type f | grep '\.h' | grep -v '~' > TmpData.tmp

위와 같이 했을때, 그냥 쉘에서 작동하면 잘 작동합니다.

한데 파일로 만들어서 하면 TmpData.tmp 에 데이터가 Null로 들어가네요..

혹시 해결방법이 있는지 궁금합니다.

Prentice의 이미지

저는 잘 되는데요?

find를 실행하기 전에 pwd를 찍어보시고, 원하시는 위치에서 실행하고 있는지 확인해보세요.

---

grep '\.h$'를 하시면 .h로 끝나는 파일들을 찾으실 수 있습니다.

la9527의 이미지

아.. 에고.. 위의 것은 잘 되네여..

find $1 -type f | grep '\.$2$' > TmpData.tmp

정확하게는 위와 같이 할했는데 $1은 상관 없는데 $2가 문제가 되네요.

'\.$2$' 에 '' 를 빼니깐 제대로 되는데 ''가 들어가서 사용하는 방법을 잘 모르겠네요..

아무튼 답변 주셔서 감사합니다. ^^

nainu의 이미지

la9527 wrote:
아.. 에고.. 위의 것은 잘 되네여..

find $1 -type f | grep '\.$2$' > TmpData.tmp

정확하게는 위와 같이 할했는데 $1은 상관 없는데 $2가 문제가 되네요.

'\.$2$' 에 '' 를 빼니깐 제대로 되는데 ''가 들어가서 사용하는 방법을 잘 모르겠네요..

아무튼 답변 주셔서 감사합니다. ^^

" " 로 하셔도 됩니다~