2016-04-04 4 views
0

パテを使用して、ウィンドウからレッドハットマシンにテキストファイルをコピーしました。ファイルを実行しようとすると。 ctrl + zがこのファイルに追加されたため、エラーが表示されます。LinuxのファイルでCtrl + Zを消去するには?

私は

tr -d '\15\32' </path/gems/spec/rms.spec> /path/gems/spec/rms.spec 

このコマンドを使用していた。しかし、私は様々なフォルダの下に1000個の+ .specファイルを持っているので、上記のコマンドは迷惑です。

ディレクトリ内.specファイルを識別し、ファイルに追加CTRL +ZをきれいにするLinuxのコマンドのいずれかのオプションがあります。事前

+2

このコマンドは非常に危険です。ファイルが閉じ込められる前にファイルが読み取られるという保証はないからです。 –

+0

'/ path/gems/*/*。spec'のようなファイルパスを提供したいと考えています。私もsedコマンドを使ってみましたが、運はありませんでした。 – Mangoski

答えて

0

おかげで、あなたbashを使用している場合は、あなたが試すことができます:

find . -type f -name '*.spec' -print0 | \ 
while IFS= read -r -d '' dot_spec_file; do \ 
cat "$dot_spec_file" | \ 
tr -d '\15\32' | \ 
sponge "$dot_spec_file" \ 
; done 

はあなたの.specファイルの親ディレクトリにそれを実行します。


スポンジは、そのすべての入力が前にファイルを書き込む読み込みます。そのマニュアルから:

spongeは標準入力を読み取り、指定されたファイルに書き出します。 シェルリダイレクトとは異なり、スポンジはすべての入力を吸収してから 出力ファイルを開きます。これにより、同じファイルに書き込むパイプラインを構築し、 を書き込むことができます。

関連する問題