2017-04-01 1 views
0

현재 디렉토리에있는 모든 파일에서 모든 캐럿 문자를 제거하고 싶습니다. 도와주세요.디렉토리의 모든 파일에서 재귀 적으로 캐럿 (^) 문자를 제거하는 방법?

+3

1) 이렇게하면 sed는 stdin에서 작동하고 stdout에 씁니다. 파일을 편집하고 다시 저장하려면 파일 이름뿐만 아니라'-i' 플래그가 필요합니다.이 파일 이름은'find -exec' 명령에서'{}'로 얻을 수 있습니다. 2) 명령은 단순히 캐리지를 제거하지 않고 쉼표로 바꾸십시오. – Siguza

+0

'maxdepth'도 추가 할 수 있습니다. – karakfa

+0

아니요, 작동하지 않습니다. 아직 끝나지 않을 것입니다. – agc

답변

1

-i 옵션을 지정하여 sed에 파일을 편집해야합니다. 그렇지 않으면 sed이 stdout에 쓸 것입니다. sed에 파일 이름이 전달되지 않습니다. 일치하는 파일 이름을 전달하려면 {} 구문을 find으로 사용하십시오.

find . -type f -exec sed -i 's/\^//g' {} \; 

일치하는 패턴을 아무것도 바꾸지 않으려면 대체 부분을 비워 두어야합니다.

관련 문제