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


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

Автор Тема: sed - вставка точки за несколько символов до конца строки  (Прочитано 658 раз)

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

Оффлайн Vasilliy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Приветствую коллеги. Уже всю голову сломал. есть числа
12345
123456
12345678
и вот на выходе должно получиться
12.345
123.456
12345.678
то есть за три символа до конца строки нужно вставить точку, независимо от ддлинны строки. Спасибо

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 751
    • Просмотр профиля
Если в каждой строке точно больше 3 цифр, то примерно так
Код: (bash) [Выделить]
sed -i -e 's|[[:digit:]]\{3\}$|.&|g' твой_файл

Оффлайн Vasilliy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Если в каждой строке точно больше 3 цифр, то примерно так
Код: (bash) [Выделить]
sed -i -e 's|[[:digit:]]\{3\}$|.&|g' твой_файл

Огромное спасибо, буду разбираться как работает эта конструкция)

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 2388
    • Просмотр профиля
aSmile, А можно '|" вместо '/'? И лучше с "-r".
Пётр.

Оффлайн qpdb

  • Участник
  • *
  • Сообщений: 206
  • xUbuntu 20.04
    • Просмотр профиля
aSmile, А можно '|" вместо '/'?

Да там многое можно, уже забыл, по-моему указано, только что нельзя…

sed "s:\(.*\)/.*:\1:" #удалить всё после последнего „/” и его
Запятые точно можно, @ и # тоже… Я вообще чаще „:” использую, нравится…


 

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