2014-11-24 3 views
0

Я работаю с оболочкой bash и теперь нуждаюсь в резервном копировании с поиском.Получение слова и последнего слова с помощью sed

У меня есть однострочный выход конфигурации Java, в котором у меня есть две информации, которые мне нужны. Эти выходы очень длинные и запутывающие, поэтому я хотел использовать sed, чтобы очистить его.

Итак, я попытался это:

sed -n 's/(.[a-z]*[0-9]*[a-z])/*\([^ ]* *\)/\1 \2/' 

Что мне нужно из файла Xmx что строить так: Xmx1024m

мне нужно последнее слово этой строки.

Пример:

was.status.socket=58963 -Dosgi.install.area.configuration.area=opt/was/example -Xms256m -Xmx1024m -Xcompressedrefs -Djavarofiles/nodeagent/properties/server.policy lastword 

Что мне нужно:

Xmx1024 lastword 

Можете ли вы мне помочь?

Спасибо!

KevinD

+0

Что такое шаблон здесь? Что вы хотите извлечь? X-е поле? Поле, содержащее ... что? Укажите это. – fedorqui

ответ

0
sed -r 's/.*(Xmx[0-9]+)m.* /\1 /' 

Пример:

[email protected]:~/AMD_C$ echo "was.status.socket=58963 -Dosgi.install.area.configuration.area=opt/was/example -Xms256m -Xmx1024m -Xcompressedrefs -Djavarofiles/nodeagent/properties/server.policy lastword" | sed -r 's/.*(Xmx[0-9]+)m.* /\1 /' 
Xmx1024 lastword 
1

Следующая удаляет все до Xmx и все после него вплоть до последнего слова:

sed 's/.*\(Xmx[^ ]*\) .* /\1 /' 
+1

@fedorqui: Очень верно! Исправлено, спасибо. – choroba

Смежные вопросы