Используйте cut
в символьном режиме:
cut -c1-15,21-
возможно, вам потребуется изменить точные номера символов. Опять же, это предполагает, что ввод не использует символы TAB(\t
)в качестве разделителей (, что, вероятно, не так, поскольку тогда у вас не будет проблемы с объединенными полями в первую очередь ).
Если есть табуляции, то программа expand
может преобразовать их в пробелы.
Во-первых, давайте решим проблему с тем, как вы обрабатываете код выхода:
ssh -p 3334 remuser@localhost "lp -d Brother_HL_L2350DW_series $HOMEDIR/Printed/$NEWFILE" >/home/system/send4print/printererror.log
SERVICE_EXIT_STATUS=$? # store the exit code
# mail if failed
if [ $SERVICE_EXIT_STATUS -ne 0 ];then
mail -s "PRINTER SERVICE FAIL ALERT. PLEASE CHECK YOUR PRINTER!!" me@myshop.com << /home/system/send4print/mailbody.txt # email when there is an error...
echo "$FILE is the culprit" >>/home/system/send4print/printererror.log # adding at end of file like in your original script the filename of the "culprit"
echo "Send email that there is an issue printing invoice for the below file. Issue is: `cat /home/system/send4print/printererror.log`" # printing like your original script the log
else
echo "Print successful. Deleting $FILE"
#this is where you may delete the file i guess?
fi;
Использование until
по запросу:
until ssh -p 3334 remuser@localhost "lp -d Brother_HL_L2350DW_series $HOMEDIR/Printed/$NEWFILE" >/home/system/send4print/printererror.log &> /dev/null
SERVICE_EXIT_STATUS=$? # store the exit code
do
# mail if failed
if [ $SERVICE_EXIT_STATUS -ne 0 ];then
mail -s "PRINTER SERVICE FAIL ALERT. PLEASE CHECK YOUR PRINTER!!" me@myshop.com << /home/system/send4print/mailbody.txt # email when there is an error...
echo "$FILE is the culprit" >>/home/system/send4print/printererror.log # adding at end of file like in your original script the filename of the "culprit"
echo "Send email that there is an issue printing invoice for the below file. Issue is: `cat /home/system/send4print/printererror.log`" # printing like your original script the log
else
echo "Print successful. Deleting $FILE"
#this is where you may delete the file i guess?
fi;
done
Это должно сработать. Хотя у меня нет принтера на моем конце, я проверил, работает ли логика (насколько я знаю ).
У меня нет ни принтера, ни марки вашего принтера, НО, просто поискав, я нашел пару сообщений с ошибкой, похожей на вашу, некоторые на Mac (, как вы упомянули, что были на ), и другой:
и т. д.
По сути, существует четыре возможных исправления/причины возникновения этой ошибки: