Intereting Posts
Как я могу удалить символы <93> <94> в файле? Это эквивалентно "" Список процессов, обращающихся к устройству после `umount –lazy` маршрутизировать некоторый трафик в подсети на другой шлюз Как изменить цветовую схему подсказки на основе пользователя? Повторяющиеся ошибки ext4 «плохой заголовок недействительной магии» на здоровом диске Postfix: заставить локальных пользователей (PHP) использовать SMTPD для внешних получателей Как я могу предотвратить iptables от подсчета байтов и пакетов в пустых цепочках? Как закрепить файл и сохранить его в другом каталоге Система продолжает запрашивать у меня пароль root вместо моего пароля! Попытка создать сценарий запуска grep внутри меньше? Как конвертировать Linux-систему с виртуальной машины на физическую машину без потери данных? Как прекратить добавление дополнительных символов новой строки как настроить имя пользователя и пароли для разных git-репозиций? Как найти и заменить только определенное слово (которое находится в конце файла) с помощью команды оболочки?

Извлечение частей текста с помощью sed, awk

У меня ниже текста, как я могу извлечь список

[83472, 8327489] и abcd: 32324?

[83472, 8327489]abcd: 32324Expr bla bla [243fd]abcd: 4342Expr ieddsk [2324, 34543, 8937423]abcd: 3232432423423Expr bla bla 

 sed -E 's/(\[[^]]*\]abcd:[[:blank:]]*[[:digit:]]*).*/\1/' file 

должен это сделать.

Образец вывода

 [83472, 8327489]abcd: 32324 [243fd]abcd: 4342 [2324, 34543, 8937423]abcd: 3232432423423 

С grep и pcre

1), чтобы извлечь upto, но не включая Expr и остальную часть строки

 $ grep -oP '.*(?=Expr)' file [83472, 8327489]abcd: 32324 [243fd]abcd: 4342 [2324, 34543, 8937423]abcd: 3232432423423 

2) извлечь [...]abcd: numbers

 $ grep -oP '\[[^]]*\]abcd:\s*\d+' file [83472, 8327489]abcd: 32324 [243fd]abcd: 4342 [2324, 34543, 8937423]abcd: 3232432423423