Или это является двоичным, или это не. Если Ваша вещь действительно не является двоичной, но просто сложный текст, вот пара решений.
Во-первых, Вы много дистрибутивов Linux идете с названной утилитой dos2unix
то, что можно работать на файле для преобразования стиля окончания строки:
$ dos2unix original_file converted_file
Вы могли также сделать это с tr
как так:
$ tr -d '\r' < orignal_file > converted_file
Или с жемчугом:
$ perl -pne 's/\r$//g' < orignal_file > converted_file
Это не бесполезно - это - специализированная форма плоскости >
оператор перенаправления (и, возможно, смутно, ничто, чтобы сделать с каналами). bash
и большинство других современных оболочек имеет опцию noclobber
, который препятствует тому, чтобы перенаправление перезаписало или уничтожило файл, который уже существует. Например, если noclobber
верно, и файл /tmp/output.txt
уже существует, затем это должно перестать работать:
$ some-command > /tmp/output.txt
Однако можно явно переопределить установку noclobber
с >|
оператор перенаправления - перенаправление будет работать, даже если noclobber
установлен.
Можно узнать если noclobber
установлен в Вашей текущей среде с set -o
.
Для исторического очерка и "noclobber" опция и ее обходные функции прибывают из csh
(в конце 70-х). ksh
скопированный это (в начале 80-х), но используемый >|
вместо >!
. POSIX, указанный ksh
синтаксис (так все оболочки POSIX включая удар, более новые производные пепла, используемые в качестве sh в некоторых системах, поддерживают его). Zsh поддерживает оба синтаксиса. Я не думаю, что это было добавлено к любому варианту Оболочки Bourne, но я мог бы быть неправым.
sh
имеетnoclobber
, с тех пор о мае 2002. – D_Bye 24.09.2012, 13:42