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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Нужен скрипт для удаления или замены текста  (Прочитано 1485 раз)

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

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Нужен скрипт для нескольких текстовых файлов, который может удалить из одной строки всё строго после символов Icon=

В этой строке есть различные комбинации англ. букв  с точкой, цифр и /

Скрипт должен действовать строго в указанной директории рекурсивно.

Возможно ли это?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #1 : 16 Октября 2017, 23:17:55 »
Код: (bash) [Выделить]
find /path_to_dir -name '*.txt' -exec sed -i 's/Icon=.*$/Icon=/' {} +
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #2 : 16 Октября 2017, 23:33:17 »
Спасибо помогло!

Хотелось бы ещё удалить всё после Icon= при условии что запись начинается строго со /snap

Вот так:

Icon=/snap и т.д.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #3 : 16 Октября 2017, 23:54:29 »
Ну так допишите в условие sed
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #4 : 17 Октября 2017, 01:02:12 »
Главное о экранировании не забывать
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #5 : 17 Октября 2017, 13:20:57 »
Не всё получается...

's/Icon=snap.*$/Icon=snap/' работает

а в варианте 's/Icon=/snap.*$/Icon=/snap/'
 
sed рассматривает /  как неизвестный модификатор к `s'


Как же решить вышеозначенную задачу?  Удалить всё после Icon=/snap при условии что запись начинается строго со Icon=/snap

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #6 : 17 Октября 2017, 13:34:37 »
Код: (bash) [Выделить]
sed -ri 's|^(Icon=)/snap.*|\1|'

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #7 : 17 Октября 2017, 13:38:47 »
Спасибо.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #8 : 17 Октября 2017, 15:43:28 »
ase66,
Главное о экранировании не забывать
Можно испольозвать вариант renzrv или воспользоваться моим сообщением и делать:
Код: (bash) [Выделить]
find /path_to_dir -name '*.txt' -exec sed -i 's/Icon=\/snap.*$/Icon=\/snap\//' {} +
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Нужен скрипт для удаления или замены текста
« Ответ #9 : 17 Октября 2017, 16:16:19 »
EvangelionDeath,
(Нажмите, чтобы показать/скрыть)

 

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