LINUX.ORG.RU

grep

 , ,


0

1

Нужно отфильтровать в сотнях конфигах, пользователей, подскажите как объяснить это grep, sed, awk и т.п.?

Искать нужно по шаблону users = [«tester», «i.ivanov», «s.petrov»] т.е. по факту мне нужна информация из [« »]

Ничего не понял, сформулируй вопрос нормально. Регексп для содержимого [] будет такой же, как и для остального, только скобки надо экранировать. То есть, \[(.*)\].

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

Давайте подробнее объясню, смотрите, есть сотни конфиг файлов, в этих файлах помимо основной бороды кода есть строки с доступами похожую на эту - users = [«tester», «i.ivanov», «s.petrov»]. В разных файлах могу быть и разные пользователи, например в файле config1 - users = [«db», «k.sidorov», «t.vasilev»] в файле config2 - users = [«l.michailova», «v.gureva», «a.milovanov»] Вот мне нужно найти в этих файлах фамилии людей.

Vitaliy_K
() автор топика
Ответ на: комментарий от Rossiks

Да зачем? Чтобы собрать, всё равно все пути писать, так что смысла никакого. Что

cp /path/to/config_directory_number_one/config* /path/to/another/config_dir/config* /path/to/yet_another_dir/config* ./
sed -En 's/.*users = .*\[(.*)\]/\1/;s/, /\n/g;s/"//gp' config* | sort -u

что

sed -En 's/.*users = .*\[(.*)\]/\1/;s/, /\n/g;s/"//gp' path/to/config_directory_number_one/config* /path/to/another/config_dir/config* /path/to/yet_another_dir/config* | sort -u

один фиг

CrX ★★★★★
()
Ответ на: комментарий от CrX

Ну уже близко
Имена всех конфигов указывать, это слишком. Хотелось бы скормить ему единственную директорию, а он пусть сам файлы и подкаталоги открывает и ищет.

Vitaliy_K
() автор топика
Ответ на: комментарий от Vitaliy_K

Для этой задачи grep’а маловато будет, sed нужен (ну можно awk по вкусу). Не, можно. конечно grep’ом сначала найти все строки с users =, затем пайпом направить в sed для дальнейшей обработки, но по-моему это как раз усложнение по сравнению с find. Хотя тоже дело вкуса, конечно. По скорости там всё равно в I/O упрётся, так что разницы не будет.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)