как получить последний символ строки в новой строке в UNIX

как получить последний символ строки в новой строке в UNIX

24.01.2020 12:21:13 Просмотров 31 Источник

Нужно удалить последнюю точку с запятой из всех строк, присутствующих в файле и поместить ее в следующую строку в случае, если это последний символ, игнорируйте его

пример:

input
This,is,a,test;
This,is,a,test;
This;is,a,test
This,is,a;test
This,is,a,test;

Output
This,is,a,test
;
This,is,a,test
;
This;is,a,test
This,is,a;test
This,is,a,test
;
У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59893486/how-to-get-last-character-of-string-in-newline-in-unix#comment105914591_59893486
Вы редактируете в vim или где-то еще?
https://stackoverflow.com/questions/59893486/how-to-get-last-character-of-string-in-newline-in-unix#comment105914641_59893486
Да, я использую Vi Editor и Shell Script, нужно заменить весь символ в новую строку в файле.

Ответы - как получить последний символ строки в новой строке в UNIX / how to get last character of string in newline in UNIX

root

26.01.2020 05:01:50

$ cat x.txt 
This,is,a,test;
This,is,a,test;
This;is,a,test
This,is,a;test
This,is,a,test;
$ sed 's/;$/\n;/' x.txt 
This,is,a,test
;
This,is,a,test
;
This;is,a,test
This,is,a;test
This,is,a,test
;

sed 's/r/x/'заменяет регулярное rстрокой x.

;$- регулярное выражение, которое соответствует ;в конце строки.

\n;- это просто новая строка, за которой следует ;.

Так что это в основном префиксы последней строки с новой строкой.

Закрыть X