Что такое команда Linux, чтобы получить следующий вывод? - PullRequest
0 голосов
/ 06 сентября 2011

У меня следующий тип текстового шаблона в текстовом файле в Linux. Мне нужно получить только последнюю часть этого текста. Как я могу получить это?

tmk.mfg.pref.ZPreferes::getKey
com.sun.star.uno.SCompentCont::getSage
com.sun.star.lang.XMultiComponentFactory::createInstanceWithContext

Мне нужна только последняя часть каждой строки, то есть getKey, getSage и т. Д. Может кто-нибудь сказать мне, как получить его с помощью cut или любой другой команды. Заранее спасибо.

Ответы [ 5 ]

2 голосов
/ 06 сентября 2011

Полагаю, вы хотите запрограммировать сценарий bash для этого, поскольку вы публикуете его при переполнении стека. Конечно, вы все равно получите один вкладыш.

Я бы использовал grep

grep -o -e "[a-zA-Z][a-zA-Z0-9_]*$" TEXTFILE.TXT

Обратите внимание, что я использую регулярное выражение для стандартного идентификатора в java / c / c ++, измените его в соответствии с вашими потребностями.

1 голос
/ 07 сентября 2011

Я бы предложил либо sed:

sed --expression='s/.*://'

или awk:

awk -F: '{ print $NF }'

Или, если вы явно хотите, чтобы третье поле, разделенное двоеточиями (вместо поля last ):

awk -F: '{ print $3 }'

Или, если вы хотите использовать только bash встроенные:

while read line; do echo "${line##*:}"; done
1 голос
/ 06 сентября 2011

Отправьте в cut: [...] | cut -d: -f3

0 голосов
/ 06 сентября 2011
while read line; do 
  echo "${line##*:}"  # removes everything up to and including the last colon
done < input.file
0 голосов
/ 06 сентября 2011

Сценарий с одним вкладышем:

for line in $(cat test); do echo ${line//*::}; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...