[Решено]Sed (Нужна помощь с sed)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

chebyrek
Сообщения: 85

[Решено]Sed

Сообщение chebyrek »

Здравствуйте, на днях столкнулся с sed, как мне кажется все должно быть просто, но не работает :(
Есть файл csv (выгрузка из базы) в котором часть переносов строк это LF, а часть CRLF. Вот все CRLF мне необходимо заменить на пробел.
Начал свой тернистый путь я не с sed, а с tr, пишу значит:

Код: Выделить всё

cat myf1.csv | tr -s '\r\n' ' ' > out.csv
получаю весь текст в одну строку, после очередного изучения мануала, стало понятно, что tr меняет каждый символ из первой строки на каждый из второй, хорошо, переходим на sed :laugh:

Код: Выделить всё

cat myf1.csv | sed 's/\r\n/ /' > out3.csv
Такая вот команда не делает ровным счетом ничего, все LF и CRLF остаются на месте. При этом:

Код: Выделить всё

cat myf1.csv | sed 's/\r/ /' > out3.csv
отлично меняет CR на пробел.
Пробовал сначала заменять CR на другой символ, а уже потом менять, но тоже ничего не происходит:

Код: Выделить всё

cat myf1.csv | sed 's/\r/#/' > out1.csv
cat out1.csv | sed 's/#\n/ /' > out2.csv

Если кто знает как с этим бороться, подскажите, пожалуйста, буду очень благодарен :)
Спасибо сказали:
chebyrek
Сообщения: 85

Re: [Решено]Sed

Сообщение chebyrek »

Удалось победить с помощью вот такой странной конструкции

Код: Выделить всё

cat myf1.csv | sed ':a;N;$!ba;s/\r\n/ /g' > out3.csv


Решение здесь
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21431
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [Решено]Sed

Сообщение Bizdelnick »

tr -d '\r' или dos2unix
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: