fold
в Mac OS X 10.11 не конвертирует CR в LF:
$ perl -E 'say(("aaaa "x17)."\r") for 1..2' | hexdump -C | grep 0d
00000050 61 61 61 61 20 0d 0a 61 61 61 61 20 61 61 61 61 |aaaa ..aaaa aaaa|
000000a0 61 20 61 61 61 61 20 61 61 61 61 20 0d 0a |a aaaa aaaa ..|
$ perl -E 'say(("aaaa "x17)."\r") for 1..2' | fold -s | hexdump -C | grep 0d
00000050 0a 61 61 61 61 20 0d 0a 61 61 61 61 20 61 61 61 |.aaaa ..aaaa aaa|
000000a0 61 61 20 61 61 61 61 20 0a 61 61 61 61 20 0d 0a |aa aaaa .aaaa ..|
$
Поскольку даже после fold
0d
(CR) все еще присутствуют в выводе ; fold
просто вставил 0a
(NL) там, где это необходимо.
Если ввод использует перевод строки в Интернете, а принтер требует перевода строки в Интернете, самый простой способ вызвать 0d
агностический fold
— преобразовать ввод в перевод строки Unix (удалить любой \r
в предположении, что они находятся рядом с \n
), передать этот вывод в fold
, а затем преобразовать вывод fold
вернуться к использованию перевода строки в Интернете:
tr -d '\r' < exampleCRLF.txt \
| fold -s \
| awk '{printf "%s\r\n", $0}' \
| lpr -P PrintAdapter
Возможно, более разумно установить dos2unix
из системы пакетов (Fink, MacPorts, Homebrew) и использовать ее для преобразования перевода строки.
Есть опция bash для защиты от перезаписи при отправке стандартного вывода в файл. Например. cat> file.
Защита от перезаписи с помощью noclobber.
set -o noclobber
Принудительная перезапись:
program >| file2
Прочитать из: http://www.linuxhowtos.org/Tips%20and%20Tricks/Protecting%20files%20with%20noclobber.htm
Изменить: { {1}} Remove de write permision of dir предотвращает удаление файла, но возможно редактировать этот файл. Создать новый файл невозможно без разрешения на запись в каталог.
с расширенными атрибутами в файловой системе ext2-4, возможно сделать файл несохраняемым, если атрибут не удален. chattr + u file
Есть другие атрибуты для создания файлов только добавляемыми или неизменяемыми. chattr + u file
{1}} Атрибуты, описанные в: Википедия