Удаление последней запятой с помощью sed - PullRequest
2 голосов
/ 29 декабря 2010

У меня есть текстовый файл, и я хочу удалить последнюю запятую из второй последней строки, если она существует.

a, b, c, d,
m, n, p,
x, y, z,
);

Запятую после z необходимо удалить только.

Ответы [ 2 ]

3 голосов
/ 29 декабря 2010

Попробуйте:

sed 'N;$s/,\n/\n/;P;D' inputfile

Удаляет запятую в конце следующей за последней строки.Предполагается, что после последней отображаемой строки ничего нет.

Если вместо этого вам нужно ввести содержимое этой строки, это должно сработать:

sed 'N;/)\;/s/,\n/\n/;P;D' inputfile
0 голосов
/ 29 декабря 2010

Вы также можете сделать это с помощью awk:

 awk 'l2{print l2} {l2=l1; l1=$0} END{sub(/,$/,"",l2); print l2 "\n" l1}' file
...