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


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

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

Оффлайн Vasilliy

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

Оффлайн aSmile

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

Оффлайн Vasilliy

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

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

Оффлайн Peter_I

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

Оффлайн qpdb

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

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

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

Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

 

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