Есть пара шагов к тому, что вы хотите.
Во-первых, вам нужно поставить NC -K -L -P 9100 | Tee Labels.txt
в скрипт, и добавьте обработчик для SIGHUP
, чтобы перезапустить команду.
Далее вам нужно настроить logrotate
, ну, поверните журналы.
Мне было рекомендовано попробовать DOS2UNIX Addments.txt
, и может сказать, что это решило проблему. Большое спасибо !!
Что происходит, в том, что файл находится в формате Windows, где Newlines представлены двум символом CR, LF. Вы используете Unix Tools, которые ожидают, что нью-новинки представляют собой пункт Unix, с простом символом LF. Оболочка лечит CR (возврат каретки) как обычный характер, поэтому он становится частью значения адреса
. Когда вы распечатаете результат на терминале, терминал интерпретает персонажа CR как «вернуться к началу текущей строки», поэтому в том, что .html [114933] .html
.html . линии.
Вы можете Преобразовать файл в использование нью-модулей Unix .
Если вы хотите, чтобы ваш код был надежным для ввода файлов с кодировкой Windows Newline, вы можете сообщить оболочку для лечения CR как символ пробелов, добавив его в переменную IFS
.
while IFS="$IFS$(printf '\r')" read address; do
echo "${address}.html"
done <addresses.txt
Другое решение было бы раздевать символ CR с конца значения в случае, если он там, используя расширение параметра . Обратите внимание, что Backslash-ueLine для продолжения строки не будет работать, если файл фактически содержит backslash-cr-newline, поэтому вы должны выключить это, чтобы избежать путаницы.
CR=$(printf '\r')
while read -r address; do
address=${address%$CR}
echo "${address}.html"
done <addresses.txt
В KSH93, Bash и ZSH вы можете использовать $ '\ R'
вместо $ (printf '\ R')
.