Мне нужно заполнить последнюю строку файла пустым пробелом до позиции 80, и мне также нужно убедиться, что она всегда заканчивается без новых строк (CR/LF)
Информация
В Windows 10 приведенный ниже SED используется для переформатирования файла, чтобы CRLF
находился в позиции 80 строки каждой строки до EOF и обновлял файл на месте, но в последней строке никогда не было CR
или LF
.
Исходный файл представляет собой огромную строку печатных символов без возврата каретки или перевода строки в этом файле, поэтому все начинается со строки номер один, а ниже - САС, который я использую для его переформатирования.
sed -i -e "s/.\{80\}/&\r\n/g" "C:\Folder\test.txt"
Моя проблема
Я не могу понять, как сделать так, чтобы последняя строка этого файла была заполнена до конца, до позиции 80 с пробелом и без возврата каретки.
Я попробовал несколько вещей, но я далеко и предпочел бы не перечислять все, что я пробовал, поэтому я показал синтаксис sed, который я запускаю выше для этой части. Я уверен, что есть кое-что простое, что я пропускаю, но. , ,
предпочтение
Я бы предпочел использовать SED для этого, и мне нужно сохранить CRLF
в других строках над последней строкой в том же формате, но я тоже хочу посмотреть на другие решения Windows, если не слишком сложные.
Соображения
Символы последней строки могут быть 1 символом, 79 символами, а может быть, даже потенциально 80 символами, и в этот момент мне нужно убедиться, что в последней строке нет возврата каретки или перевода строки, если непустое пространство заполняет ее до позиции строки. 80 на последней строчке.
Хотя снимок экрана содержит 91 строку, эти файлы могут содержать больше строк или меньше строк, но правила всегда должны быть одинаковыми; перевод строки возврата каретки в позиции 80 на каждой строке, а последняя строка должна быть ровно на 80 позиций после заполнения пробела, если это необходимо, и возврата каретки или перевода строки на нем нет.
Формат данных начальной точки
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~EOL any legnth and no CR or LF
Желаемый конечный формат данных
Я не могу понять, как заполнить последнюю строку в файле пустым пространством без CR или LF в конце строки до позиции 80.
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~[CR][LF]
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~[CR][LF]
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~[CR][LF]
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~[CR][LF]
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~[CR][LF]
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~[CR][LF]
Data*~123 dummydata Data*~123 dummydata Data*~123 dummydata Data**endoflinedata~[CR][LF]
EOL any legnth less than 80 no CR or LF fill rest empty space to position 80--->
Предупреждение: если вы используете вышеуказанные данные для тестирования, пожалуйста, замените буквенные символы [CR][LF]
на те, которые действительно должны представлять.