2016-07-13 4 views
3

ファイルの末尾に追加改行からのsed:防ぐには、私は次のコマンドを使用してモジュール名を置き換えたい、私は大規模なプロジェクトを持っている

find app/ -type f -exec sed -i '' 's/Foo/Bar/g' {} +

これは素晴らしい作品を、だけでなく、に改行を追加しセッドすべてのファイルの終わり(Fooを置き換えることができない場合でも)。

sedがこれらの改行を追加しないようにするにはどうすればよいですか?

私はBSD版のsedを使用してOSXを使用しています。

(記録のために、私は非常に多く、ここでSEDに同意するが、私はプロジェクトのGitの歴史を汚染したくない。)

+0

GNU sed – Leon

+0

で、この動作(改行が不足しているEOFを追加)が見つかりません。BSDバージョンを使用してOSXを使用しています:https://developer.apple.com/legacy/library/documentation/Darwin/Reference /ManPages/man1/sed.1.html – Torstein

+0

sedがファイルの最後に空白行を追加している、あるいは元のファイルに改行が終わっておらず、sedがそれを追加していると言っていますか?前者のsedが壊れている場合は、後者の場合、入力ファイルはPOSIX標準のテキストファイルではないので、sedやその他のUNIXツールではPOSIXでは未定義の動作が行われます。 –

答えて

4

Perlの救助には:

perl -i -pe 's/Foo/Bar/g' 

Perlは」doesnの改行を追加する。

関連する問題