У меня есть текстовый файл под названием compare.txt, что я хочу извлечь одну строку, которая следует за каждой строкой, которая содержит шаблон "nmse_gain_constant". Следующая команда получает меня близко:
grep -A 1 nmse_gain_constant compare.txt | grep -v nmse_gain_constant
Но это включает разделитель "-" строка между каждой строкой требуемого текста. Какие-либо легкие идеи, как избавиться от "-" строки?
Я дал бы Вам некоторый текст в качестве примера здесь, но "-" символы ошибочно интерпретируются этим веб-сообщением как управляющие символы и что Вы видели бы, не корректно.
Одно решение будет:
grep -A 1 nmse_gain_constant compare.txt | grep -v nmse_gain_constant | grep -v "\-\-"
Если вы используете AWK:
awk '/nmse_gain_constant/{getline;print }' compare.txt
Ну а коммутатор
по умолчанию добавит эти символы, так что это не загадка.
Человек GreeP
состояния:
-A NUM
Places a line containing a group separator (--) between
contiguous groups of matches. With the -o or --only-matching
option, this has no effect and a warning is given.
, но вы можете использовать простой SED для очистки результата:
yourgrep | sed '/^--$/d'