как извлечь шаблон из каждого предложения с шаблоном [xxx][xxxx] в конце

Вы можете переопределить тему gtk, используемую Firefox:

  1. перейдите кabout:config
  2. создать строковый ключwidget.content.gtk-theme-override
  3. установите значение для любого названия светлой темы, напримерAdwaita:light
  4. перезапустите Firefox, чтобы применить
-2
02.08.2020, 18:36
3 ответа

Попробуйте это с GNUgrep(или любой другой grep, которая поддерживает опцию -o):

grep -o '\[[^]]*\]\[[^]]*\]$' file > new_file

Выход:

[xxxx][xxxx]
[xxxx][xxxx]
[xxxx][xxxx]
2
18.03.2021, 23:15

Стандарт POSIX:

sed 's/.*\(\[[^]]*\]\[[^]]*\]\)$/\1/' file
  • \[[^]]*\]соответствует [, любому количеству не -], другому ].
  • \(\[[^]]*\]\[[^]]*\]\)$соответствует двум из них, закрепленным в конце строки, которые захвачены \(\)в первой и единственной группе захвата.
  • \1в выходных данных сохраняется только захваченная группа.
1
18.03.2021, 23:15

Если ваш grepподдерживает -o, и на линии нет других [, поэтому вы хотите все после первого[:

$ grep -oP '[^]]*\K\[.*' file 
[xxxx][xxxx]
[xxxx][xxxx]
[xxxx][xxxx]

Если у вас есть другие [, которые вам не нужны, попробуйте:

$ grep -oP '.*\K\[.+?\]\[.*' file 
[xxxx][xxxx]
[xxxx][xxxx]
[xxxx][xxxx]

И если у вас нет grep, который поддерживает-o(я полагаю, что macOS поддерживает ), вы можете использовать:

$ sed -E 's/.*(\[.+?\]\[.*)/\1/' file 
[xxxx][xxxx]
[xxxx][xxxx]
[xxxx][xxxx]
2
18.03.2021, 23:15

Теги

Похожие вопросы