리눅스 쉘상에서 예를 들어서 abc 라는 문자열이 포함된 파일을 찾아서
바로 지우는 방법이 없을까요?
a.txt b.txt <- abc 문자열 포함 c.txt d.txt <- abc 문자열 포함
파일들이 너무 많아서 지울수도 없고.
위의 예처럼 b.txt 와 d.txt 만 골라서 지우는 방법인데,
아시면 도움 주시면 진심으로 감사하겠습니다.
$ rm -f `grep "찾고자 하는 문자열" * -l`
작은 따옴표는 키보드 ESC 키 아래에 있는 것으로,
표준출력을 argument로 바꿔줍니다.
_____________________________ 언제나 맑고픈 샘이가...http://purewell.biz
사족일지 모르지만 파일이 많으시다니 위의 스크립트가 문제가 될지 몰라 제가 하나더 올립니다.
ls | while read filename; do if grep -q "찾으려는 문자열" $filename; then rm -f $filename; fi; done
사족일지 모르지만 파일이 많으시다니 위의 스크립트가 문제가 될지 몰라 제가 하나더 올립니다. ls | while read filename; do if grep -q "찾으려는 문자열" $filename; then rm -f $filename; fi; done
이런 경우엔 xargs를 쓰면 됩니다.
혹시 ls 를 쓰신다면
ls 대신 /bin/ls -1 을 써야 ls 가 alias 일때 문제가 안생길것 같습니다.
내 자식들도 나처럼 !!
파일 수가 너무 많다면
grep -l abc * | xargs rm
중 앞부분 "grep -l abc *"에서 bash: /bin/grep: Argument list too long과 같은 에러가 납니다.
bash: /bin/grep: Argument list too long
find . -name [abc].* -print |xargs rm
하면 될 것같은데요..
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
$ rm -f `grep "찾고자 하는 문자열" * -l`작은
$ rm -f `grep "찾고자 하는 문자열" * -l`
작은 따옴표는 키보드 ESC 키 아래에 있는 것으로,
표준출력을 argument로 바꿔줍니다.
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
파일이 너무 많으면...
사족일지 모르지만
파일이 많으시다니 위의 스크립트가 문제가 될지 몰라 제가 하나더
올립니다.
ls | while read filename; do if grep -q "찾으려는 문자열" $filename; then rm -f $filename; fi; done
Re: 파일이 너무 많으면...
이런 경우엔 xargs를 쓰면 됩니다.
Re: 파일이 너무 많으면...
혹시 ls 를 쓰신다면
ls 대신 /bin/ls -1 을 써야 ls 가 alias 일때 문제가 안생길것 같습니다.
내 자식들도 나처럼 !!
파일수가 많다면
파일 수가 너무 많다면
grep -l abc * | xargs rm
중 앞부분 "grep -l abc *"에서
bash: /bin/grep: Argument list too long
과 같은 에러가 납니다.[find랑 xargs를 조합하면..]
find . -name [abc].* -print |xargs rm
하면 될 것같은데요..
댓글 달기