Используя sed, мне нужно заменить все ", \ n" на ", \. \ N", включая последнюю строку - PullRequest
1 голос
/ 19 января 2011

У меня есть несколько тысяч больших текстовых файлов, которые мне нужно очистить.Мне нужна любая строка, которая заканчивается запятой и заканчивается запятой, за которой следует точка (,.).

Я нашел следующее, которое работает для каждой строки, кроме последней.Оно должно быть близко к тому, что мне нужно, но я не могу понять, как заставить его работать и в последней строке.

find . -name "*.txt" -print  | xargs sed -i ':a;N;$!ba;s/,\n/,\.\n/g'

Мои данные выглядят примерно так:

0,0,0,193,17,.,.,
0,0,0,174,19,.,.,
0,0,0,124,14,.,.,

Мне нужно, чтобы это выглядело так:

0,0,0,193,17,.,.,.
0,0,0,174,19,.,.,.
0,0,0,124,14,.,.,.

1 Ответ

3 голосов
/ 19 января 2011
sed 's/,$/,./'

($ означает конец строки.)

...