trを使用する代わりに改行文字を置き換える別の方法

trを使用する代わりに改行文字を置き換える別の方法

私は次のコマンドを使用します。

tr '\n' ' ' < input.txt > output.txt

tr新しい行を空白に変換するには、コマンドを使用します。

単一のファイルに対して機能しますが、複数のファイルがあり、単一のコマンドを実行する必要があります...テキスト交換のためには、次のようになります。

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

bashスクリプト(上記のfindの使用など)に追加して削除できるコマンドはありますか\n

ベストアンサー1

これは、次に始まるすべてのファイル名に対してループなしで機能しますfile

perl -pe 's/\n/ /g' file*

このようなタスクはPerlを好みます。 sedと同じ構文を持ち、移植可能で、奇妙なsedパラメータはありません。-iPerl(sedなど)にスイッチを適用して内部変更を実行することもできます。 (perl -i.old -pe ....古いファイルは拡張子.oldでバックアップされます。使用でき、-iバックアップファイルは保存されません。)

必要に応じて、find次のコマンドを使用できます。

$ find . -type f -name 'file*' -exec bash -c 'tr "\n" " " <$0 >$0.new' {} \;

おすすめ記事