Баш - grep? СЭД? удалить строки текста из переменной - PullRequest
1 голос
/ 11 января 2012

У меня есть переменная, полная текста, на самом деле это журнал git.Каждая строка журнала git имеет идентификатор (идентификатор JIRA), который является либо IPAD, либо MIPO.

Я хочу отфильтровать вывод git и показать только один или другой

Пока чтоУ меня есть это:

RAW_NOTES=`git log $LAST_REVISION..master --pretty=format:"%h %ar %s"`
echo "Raw git notes: $RAW_NOTES"

тогда я могу отфильтровать его, используя

RELEASE_NOTES=`echo "$RAW_NOTES" | grep "$JIRA_KEY"`
echo $RELEASE_NOTES

Однако .... RAW_NOTES имеет хорошее форматирование и разрывы строк, RELEASE_NOTES теряет все мои разрывы строк.

Как можно сохранить форматирование или использовать какую-либо другую команду фильтрации текста, чтобы удалить определенные строки текста, которые соответствуют.

пример ввода:

IPAD did this
IPAD did that
MIPO Im another comment
IPAD something else
IPAD bla bla
MIPO hello 
MIPO doodle do

, и я хочу выводбыть

MIPO Im another comment
MIPO hello 
MIPO doodle do

Спасибо

Ответы [ 3 ]

1 голос
/ 11 января 2012

Попробуйте повторить кавычки, например:

echo "$RELEASE_NOTES"
1 голос
/ 11 января 2012

git log обеспечивает фильтрацию так:

git log --grep="$JIRA_KEY"
0 голосов
/ 11 января 2012

На основании вашего примера ввода вы можете попробовать любой из них -

sed -n '/MIPO/p' filename

sed '/MIPO/!d' filename

awk '/MIPO/' filename

grep "MIPO" filename
...