2016-04-04 2 views
0

Я скопировал некоторые текстовые файлы из окон в машину redhat с помощью шпатлевки. Когда я пытаюсь выполнить файлы. Я получаю ошибку, потому что ctrl + z был добавлен в этот файл.Как очистить ctrl + z в файле linux?

Я использовал эту команду

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

Но выше команда раздражает, потому что у меня есть более 1000 .spec файлов в различных папках.

Есть ли какой-либо параметр в команде Linux идентифицировать .spec файлы в каталоге и очистить Ctrl + г добавляемые в файле.

Заранее спасибо

+2

Эта команда также очень опасна, поскольку нет гарантии, что файл будет считан до того, как он будет сбит. –

+0

Я ищу, чтобы предоставить путь к файлу, например '/ path/gems/*/*. Spec'. Я также попытался использовать команду 'sed', но не повезло. – Mangoski

ответ

0

Если вы используете Баш, вы можете попробовать:

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 файлов.


губка читает все его ввода, прежде чем записать файл; из его руководства:

губка читает стандартный ввод и записывает его в указанный файл. В отличие от перенаправления оболочки, губка впитывает весь свой вход перед открытием выходного файла. Это позволяет конструировать конвейеры, которые читают, и записать в тот же файл.

Смежные вопросы