공백이 포함된 디렉토리경로내에 있는 특정내용이 담긴 파일을 삭제하고싶은데..
글쓴이: KJLEE@Naver / 작성시간: 목, 2018/10/18 - 2:23오후
안녕하세요
어떤내용이 담긴 파일을 삭제하고자 하는데 명령어를 잘 모르겠어서 질문드립니다
1234 내용이 담긴 test.txt 파일을 찾아서 삭제하고싶은데..
해당 파일의 경로에 공백이 포함된 디렉토리가 있는 경우
어떻게 삭제해야될지 모르겠습니다
저런게 한 몇십개 되서요...
find ./ -type f -name 'test.txt' -size 100c | xargs grep -l '1234' | xargs rm 를 입력하였을때
공백이 포함된 디렉토리는 경로는 검색이 되는데 '그런 파일이나 디렉토리가 없습니다' 라는
문구가 나오면서 삭제가 되지 않습니다
find 옵션에 -print0 를 grep쪽에도 -o를 넣어봤지만.. 증상이 똑같습니다
1234라는 내용은 예시입니다.
위 조건이 통하는 명령어를 알려주시면 감사하겠습니다.
Forums:
검색이 되는데 '그런 파일이나 디렉토리가 없습니다'???
세벌 https://sebuls.blogspot.kr/
위에서 설명드린 명령어인 find와 grep을
위에서 설명드린 명령어인 find와 grep을 이용하여
find ./* -type f -name 'index.html' | xargs grep -l '내용' 명령어를 입력했을때
---------------------------------------------
grep: ./000/: 디렉터리입니다
grep: photomoa_beautfy/index.html: 그런 파일이나 디렉터리가 없습니다
---------------------------------------------
라는 문구가 나옵니다.
(공백이 포함된 디렉토리의 경우 공백에서 아래로 분리됩니다.)
하지만 실제로 ./000/\ photomoa_beautfy/ 디렉토리로 들어가면 index.html 파일은 존재합니다.
find ./* -type f -name 'index.html' | xargs grep -l '내용' | xargs rm 명령어를 입력했을때에도
마찬가지로 위와 같은 문장이 나오며 삭제가 안됩니다..
공백과는 상관없는 근본적인 문제가 있습니다.$
공백과는 상관없는 근본적인 문제가 있습니다.
근본적인 문제가 있다고 하시면..
근본적인 문제가 있다고 하시면..
제가 사용한 명령어로는 공백이 포함된 디렉토리가 있는 경로는 작업하기가 어려운건가요?
xargs 로 입력되는 문자열 중 앞쪽의 "grep:
xargs 로 입력되는 문자열 중 앞쪽의 "grep:" 을 없앨 수 있다면, 공백은 | xargs -ti rm {} 으로 처리할 수 있습니다.
그리고, find ./* 이 아니라 find ./ 혹은 find . 로 실행하세요.
도와주셔서 감사합니다
도와주셔서 감사합니다
xargs 명령어를 이용하여 해결한건 아니지만
find ./ -type f -name test.txt -size 100c -exec grep -l '내용' {} \; -exec rm -rf {} \;
명령어로 해결하였습니다
공백이 포함된 디렉터리명 하위에 있는 파일들중 특정 내용이 담긴 파일들을 한번에 처리하고 싶었는데
-exec 명령어를 두번쓸 수있다는것을 이제야알았습니다..
코드
수직막대(|)와 소문자 엘(l) 구별이 잘 안 되어서 코드 태그 안에 써 보았습니다.
세벌 https://sebuls.blogspot.kr/
댓글 달기