Как преобразовать длинную строку в несколько строк и сохранить

#bash #shell

Вопрос:

Приведенный ниже скрипт сохраняет длинные строки в err_$(date).txt файле. Я хотел бы преобразовать длинные строки в строки меньшего размера с новыми строками. В приведенном ниже коде, в err_$(date).txt файле я получаю этот текст: Error1 in Machine 1 nn Error2 in Machine 1 nn Error2 in Machine 2 nn . Я хотел бы сохранять новые строки каждый раз nn , когда они есть. Но без nn . В каждой следующей строке должна быть только ошибка , например, в строке 1 должна быть Error1 in Machine 1 ошибка, в строке 2 должна быть Error2 in Machine 1 ошибка и так далее. Я надеюсь, что вопрос ясен.

 #!/bin/sh  if grep -R "Error1 in Machine 1 " /home/new/Report.txt then echo "Error1 found in Machine 1" strg="${strg} Error1 found in Machine 1 nn" else echo "No Error found" fi   if grep -R "Error2 in Machine 1" /home/new/Report.txt then echo "Error2 found in Machine 1" strg="${strg} Error2 in Machine 1 nn" else echo "No Error found" fi   if grep -R "Error2 in Machine 2" /home/new/Report.txt then echo "Error2 found in Machine 2" strg="${strg} Error2 in Machine 2 nn" else echo "No Error found" fi  whiptail --title "Report Error" --msgbox "${strg}" 24 30 echo "${strg}" gt;| /home/new/err_$(date).txt  

Ответ №1:

Возможно, вы захотите попробовать что-то подобное:

 while IFS="nn" read LINE; do  #do your stuff with $LINE done lt; input.file