sed -i 呼び出しにはどのような問題がありますか?

sed -i 呼び出しにはどのような問題がありますか?

この行があります。

find . -type f \( ! -name '*.plist' \) -and \( ! -name '*.mp4' \) -and \( ! -name '.DS*' \) -print0 | xargs -0 sed -i 's/AAA/BBB/g'

私の目的は、.plist、.mp4、および.DS *拡張子を持つファイルを除いて、現在のディレクトリ内のすべてのファイルからすべてのAAAエントリをBBBに繰り返し変更することです。

しかし、メッセージを受け取りました。

sed: 1: "./myDir/pro ...": invalid command code .

ベストアンサー1

最も簡単な解決策は、次を使用することです。

find . -type f \( ! -name '*.plist' \) -and \( ! -name '*.mp4' \) -and \( ! -name '.DS*' \) -print0 | xargs -0 perl -pi -w -e  's/AAA/BBB/g'

おすすめ記事