Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: sed: нужно удалить вертикальную табуляцию \v  (Прочитано 923 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн garek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Прошу помощи, ибо никак не могу решить проблему.
Пытаюсь сделать такую замену:
sed 's/^\v//g'но ничего не получается.
Sublime Text вертикальную табуляцию \v видит, всё ок, но мне нужно не вручную обработать файл, а скриптом.

Можно и не sed, если подскажете какой-то ещё вариант, буду очень благодарен.

ТС не появлялся на Форуме более трех месяцев по состоянию на 12/02/2020 (последняя явка: 08/04/2019). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 12 Февраля 2020, 23:35:22 от zg_nico »
недостаточно дружелюбен к старичкам

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #1 : 12 Октября 2018, 08:35:25 »
sed -i 's/^\v//' файл

Оффлайн garek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #2 : 12 Октября 2018, 08:43:29 »
Это не работает.

Пользователь добавил сообщение 12 Октября 2018, 08:47:21:
Может быть как-то связано с версией?
$ sed --version
sed (GNU sed) 4.4
« Последнее редактирование: 12 Октября 2018, 08:47:21 от garek »
недостаточно дружелюбен к старичкам

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #3 : 12 Октября 2018, 08:53:06 »
У меня такая-же версия и работает.
Может там не \v ?
Посмотри:
xxd файл\v - имеет код 0b

Можно еще так:
perl -i -pe 's/^\v//' файл

Оффлайн garek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #4 : 12 Октября 2018, 09:24:54 »
Хм, прикол...
xxd показывает 0а

А это сработало:
perl -i -pe 's/^\v//' файлСпасибо большое! Это уже решение моей проблемы.

И, как я уже сказал в начале, Sublime тоже находит его как \v:

В общем, странности.

Попутно ещё вопрос: а можно в sed'e делать поиск символа по коду?  
Нашел, что можно, но у меня все равно не срабатывает.  :)
Ни sed -i ' s/\x0A// ' ~/numbers.tmp, ни sed -i ' s/\x0B// ' ~/numbers.tmp Ну и...
« Последнее редактирование: 12 Октября 2018, 09:49:09 от garek »
недостаточно дружелюбен к старичкам

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #5 : 12 Октября 2018, 09:49:12 »
0a - это \n (new line)
По коду perl умеет.
Только буква после числа в нижнем регистре должна быть.

Оффлайн garek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #6 : 12 Октября 2018, 10:13:49 »
Ага, смастерил, спасибо еще раз. )
недостаточно дружелюбен к старичкам

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #7 : 12 Октября 2018, 13:38:16 »
Проверка:
$ echo -e '\v123' | xxd
00000000: 0b31 3233 0a                             .123.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3269
    • Просмотр профиля
Re: sed: нужно удалить вертикальную табуляцию \v
« Ответ #8 : 12 Октября 2018, 21:30:13 »
Ещё короче было бы с "tr -d":
tr -d "\v" Так удобно удалять одиночные символы.
Пётр.

 

Страница сгенерирована за 0.015 секунд. Запросов: 19.