ファイルを見つけて、そのファイルのテキストを編集しようとします。これが私が今まで持っているものですが、残念ながら私はそれについてあまり慣れていません。助けてください?
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'
各ファイル名の後に改行文字の代わりにゼロバイトを追加する-Z
パラメータを追加しました。grep
したがって、このコマンドは奇妙なファイル名でも機能します。xargs
その後、ゼロバイトで区切られた入力を読み取り、コマンドを-0
呼び出します。sed