Удаление строк, начинающихся с CR, в файле напрямую - PullRequest
0 голосов
/ 05 октября 2018

Я хочу написать скрипт ksh, удалить все строки файла, начиная с возврата каретки.Я хочу указать, что в том же сценарии я хочу повторно использовать измененный файл, поэтому мне нужно внести изменения непосредственно в файл.

Например, вот мой файл в Notepad ++ (с показом возврата каретки)как CRLF как файл формата Windows):

CE1;CPr1;CRLF
CE2;CPr2;CRLF
CRLF
CE3;CPr3;CRLF
CRLF
CRLF

и я хочу получить:

CE1;CPr1;CRLF
CE2;CPr2;CRLF
CE3;CPr3;CRLF

Сценарий, который я написал до сих пор:

sed -i '/^\n/d' ListeTable.lst

Я также пытался с \r и \R, но ничего не работает.

Как я указал, есть следующий скрипт, который повторно использует измененный файл, который выглядит (но есть и больше):

echo -n "(CE = '$(tail -n 1 ListeTable.lst | cut -d$';' -f1)'and CPr = '$(tail -n 1 ListeTable.lst | cut -d$';' -f2)')"

1 Ответ

0 голосов
/ 05 октября 2018

Хорошо, поэтому я нашел регулярное выражение, которое подходит для этой проблемы: '/^\s*$/d' (\s = соответствует любому символу пробела (новые строки, пробелы, символы табуляции); * = символ может повторяться в любое время или отсутствовать;$ = до конца последнего найденного символа \ s)

Итак, рабочий код: sed -i '/^\s*$/d' ListeTable.lst

...