Я пытаюсь извлечь число, заключенное в квадратные скобки, после сопоставления со словом, которое ставится после числа. например,
Файл содержит
xxxx [098] yyyy zzzz
Мне нужно найти гггг, и, если в строке есть совпадения, я должен извлечь сам 098.
Я пытаюсь с
sed 's/.*\[\([^]]*\)\].*/\1/g' str.txt
для извлечения числа без сопоставления с образцом.
и я использую
sed -nr 's/.*( |^)([0-9]+) yyyy.*/\2/p' str.txt
для сопоставления с образцом и получения числа, которое помещается перед этим совпадением. Но я не мог объединить эти две команды. Я путаю с ошибкой
sed: -e выражение # 1, символ 26: неизвестная опция для `s '
Я думаю, что это произошло из-за использования / в качестве разделителя больше.