LINUX.ORG.RU

убрать перевод строки

 


0

1

есть строки

$ echo -e "1\n2\n3\n4\n5"
1
2
3
4
5

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

что-то извращаюсь с sed но не выходит он строками же оперирует, tr тут то-же не катит, не писать же тут программу для такого...

помогите плиз

★★

не писать же тут программу для такого

Если ты не можешь открыть vi и удалить свой перевод строки, то да, именно «писать программу для такого». Тут awk вполне справится.

slovazap ★★★★★
()
Ответ на: комментарий от anonymous

Можно немного короче:

$ echo -e "1\n2\n3\n4\n5" | perl -npe 's/(.*2)\n/$1/'
1
23
4
5
anonymous
()
$ echo -e "1\n2\n3\n4\n5" | sed '/2$/ { N ; s/\n// }'
1
23
4
5

Если же тебе надо убирать только в случае конкретного продолжения, то изменится только команда 's'.

ABW ★★★★★
()

большое спасибо всем кто ответил!

я правда уже на c++ набросал чтобы обработать мой 150 мегабайтный файлик, но на будущее пригодится

quester ★★
() автор топика
Ответ на: комментарий от quester

на c++ набросал
150 мегабайтный файлик

Сравни ради прикола по скорости с тем же sed, будет об чём подумать :)

onhydro
()
Ответ на: оффтопик от onhydro

Результаты поиска на порядок лучше (много движков на выбор, включая google).

monday
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.