Запитання з тегом «regular-expression»

Регулярні вирази - це засіб зіставлення шаблону символів у рядку.

13
Як я перехоплюю декілька шаблонів із малюнком, що має характер труби?
Я хочу знайти всі рядки в декількох файлах, які відповідають одному з двох шаблонів. Я спробував знайти шаблони, які шукаю, ввівши grep (foo|bar) *.txt але оболонка інтерпретує |як трубу і скаржиться, коли barвона не виконується. Як я можу підключитись до декількох шаблонів в одному наборі файлів?

8
Чи може виводити греп лише ті визначені угрупування, які відповідають?
Скажіть, у мене є файл: # file: 'test.txt' foobar bash 1 bash foobar happy foobar Мені хочеться лише знати, які слова з’являються після "foobar", тому я можу використовувати цей регулярний вираз: "foobar \(\w\+\)" Дужки вказують на те, що я маю особливий інтерес до цього слова відразу після foobar. Але коли …


14
Як я можу використовувати sed для заміни багаторядкового рядка?
Я помітив, що якщо я додам \nдо схеми заміщення використання sed, він не відповідає. Приклад: $ cat > alpha.txt This is a test Please do not be alarmed $ sed -i'.original' 's/a test\nPlease do not/not a test\nBe/' alpha.txt $ diff alpha.txt{,.original} $ # No differences printed out Як я можу …


8
Як запустити grep з кількома шаблонами AND?
Я хотів би отримати збіг декількох шаблонів із неявними AND між шаблонами, тобто еквівалентним виконанню декількох греппів у послідовності: grep pattern1 | grep pattern2 | ... Тож як перетворити це на щось подібне? grep pattern1 & pattern2 & pattern3 Я хотів би використовувати один grep, тому що я будую аргументи …

7
Використання sed для пошуку та заміни складного рядка (бажано з регулярним виразом)
У мене є файл із таким вмістом: <username><![CDATA[name]]></username> <password><![CDATA[password]]></password> <dbname><![CDATA[name]]></dbname> і мені потрібно зробити сценарій, який змінює "ім'я" в першому рядку на "щось", "пароль" у другому рядку на "щосьельси", а "ім'я" в третьому рядку на "щось інше". Я не можу покластися на порядок їх виникнення у файлі, тому я не …

1
Чому моє регулярне вираження працює в X, а не в Y?
Я написав регулярний вираз, який добре працює в певній програмі (grep, sed, awk, perl, python, ruby, ksh, bash, zsh, find, emacs, vi, vim, gedit,…). Але коли я використовую його в іншій програмі (або в іншому варіанті unix), вона припиняє збігатися. Чому?


2
Проблема з виразними проблемами "АБО"
Я намагаюся використовувати grep з регулярним виразом, щоб знайти рядки у файлі, які відповідають 1 з 2 можливих рядків. Ось моя принада: $ grep "^ID.*(ETS|FBS)" my_file.txt Вищеописаний греп не дає результатів. Однак якщо я виконую будь-яке: $ grep "^ID.*ETS" my_file.txt або $ grep "^ID.*FBS" my_file.txt Я збігаюся з певними лініями. …

5
Як відрізняти файли від ігнорування коментарів (рядки, що починаються з #)?
У мене два файли конфігурації, оригінал від менеджера пакунків та індивідуальний модифікований я. Я додав кілька коментарів, щоб описати поведінку. Як я можу запускати diffфайли конфігурації, пропускаючи коментарі? Коментований рядок визначається: необов'язковий провідний пробіл (вкладки та пробіли) хеш-знак ( #) будь-який інший персонаж Найпростіший регулярний вираз, який пропускає першу вимогу, …


7
Знайдіть файли у кількох назвах папок
Я намагаюся список всіх файлів з dir1, dir2, dir3і dir4які можуть перебувати в будь-якому місці в підкаталозі моїх cwdвикористовуючи findкоманду. Я спробував наступне без успіху: find . -type f -regextype posix-egrep -regex 'dir1/.+|dir2/.+|dir3/.+|dir4/.+' Я також спробував posix-extended. Як я можу перерахувати ці файли?

9
Проста заміна вкладок таємничо не працює
Це повинно бути дійсно простим, але чомусь не працює: sed -i.bak -E 's/\t/ /' file.txt Замість заміни символів вкладки він замінює tсимволи. Я намагався будь-який варіант цього питання, який я міг придумати, граючи з цитуванням і т. Д. Я гугл і знайшов усіх інших, використовуючи досить схожі вирази, і вони, …


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.