![파일 찾기, 파일의 텍스트 편집 [닫기]](https://linux55.com/image/69686/%ED%8C%8C%EC%9D%BC%20%EC%B0%BE%EA%B8%B0%2C%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8E%B8%EC%A7%91%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
파일을 찾은 다음 해당 파일의 텍스트를 편집하려고 합니다. 이것이 제가 지금까지 갖고 있는 것이지만 불행히도 저는 그것에 대해 별로 익숙하지 않습니다. 도와주세요?
grep -rl "wrongtext" ~/Library/Calendars
/Users/foo/Library/Calendars/foo.caldav/foo.calendar/Info.plist
/Users/foo/Library/Calendars/foo.calendar.caldav/foo.calendar.calendar/Info.plist
/Users/foo/Library/Calendars/foo.calendar.caldav/Info.plist
/Users/foo/Library/Calendars/foo.calendar.caldav/Info.plist
/Users/foo/Library/Calendars/CalendarCache
그 다음에...
sed -i '' 's/wrongtext/righttext/g’
어떤 아이디어가 있나요?
답변1
다음을 수행해야 합니다.
grep -rlZ "wrongtext" ~/Library/Calendars | xargs -0 sed -i '' 's/wrongtext/righttext/g'
각 파일 이름 뒤에 개행 문자 대신 0바이트를 추가 -Z
하는 매개변수를 추가했습니다 . grep
따라서 이 명령은 이상한 파일 이름에도 작동합니다. xargs
그런 다음 0바이트로 구분된 입력을 읽고 명령을 -0
호출합니다 .sed
답변2
알아냈어요. 그것은 좋아하지 않는다-영형
grep -rlZ "wrongtext" ~/Library/Calendars | xargs sed -i '' 's/wrongtext/righttext/g'