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


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

Автор Тема: Регулярные выражения - тонкости и секреты  (Прочитано 1679 раз)

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

Оффлайн Nick222

  • Автор темы
  • Активист
  • *
  • Сообщений: 545
    • Просмотр профиля
Прошу прощения, но есть масса тем по регулярным выражениям - и все в архиве.

Может сделать одну большую тему и её закрепить и сделать "вечной"?

Вопрос:

Как с помощью регулярных выражений найти все файлы, НЕ содержание в начале файла определённую строку (последовательность символов) ?
Xubuntu 23.04

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Легко решается и без регулярныхfind -not -name 'stroka*'
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Nick222

  • Автор темы
  • Активист
  • *
  • Сообщений: 545
    • Просмотр профиля
И куда я это воткну?

Мне именно потому и нужны регулярные выражения, что я в одной программе могу найти все такие файлы и потом мне нужно вставить в каждый из них в начало файла две определённые строки.

Если такой поиск и вставку можно сделать другими программами - я с благодарностью прочитаю советы...
Xubuntu 23.04

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
с благодарностью прочитаю советы...
для начала изложите задачу полностью, а не отдельные части по чайной ложке...
потом мне нужно вставить в каждый из них в начало файла две определённые строки.
Код: (bash) [Выделить]
find -not -name 'stroka*' -exec sed -i '1iстрока1\nстрока2' {} \;
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Nick222

  • Автор темы
  • Активист
  • *
  • Сообщений: 545
    • Просмотр профиля
Да, действительно просто...

А я использовал другую программу.

Это именно в начало файла вставится?

И что значит 1i в одинарных кавычках?
Xubuntu 23.04

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
что значит 1i в одинарных кавычках?
чтобы
именно в начало файла вставится
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Nick222

  • Автор темы
  • Активист
  • *
  • Сообщений: 545
    • Просмотр профиля
Поиск идёт по имени файла, а мне нужно искать в содержимом файла (мне показалось, я это указал).
Xubuntu 23.04

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Поиск можно примерно так:
find -type f | while read f; do if ! head -n1 "$f" | grep -q 'stroka'; then echo "$f"; fi; doneДля замены - вместо echo, вставь sed с нужным кодом замены.

Оффлайн Nick222

  • Автор темы
  • Активист
  • *
  • Сообщений: 545
    • Просмотр профиля
Огромное спасибо! Сработало :)
Xubuntu 23.04

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Код: (bash) [Выделить]
find -type f -exec sed -si '1! b;/stroka/iстрока1\nстрока2' {} +
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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