什么是linux命令以获得以下输出?

时间:2011-09-06 12:08:06

标签: linux shell

我在Linux上的文本文件中有以下类型的文本模式。我只需要获得本文的最后部分。我怎么能得到它?

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

我只需要每行的最后一部分,即getKey,getSage等。任何人都可以告诉我如何使用cut或任何其他命令来获取它。 提前谢谢。

5 个答案:

答案 0 :(得分:2)

我想您要为此编写一个bash脚本,因为您要在堆栈溢出时发布它。当然,你永远不会少得到一个班轮。

我会用grep

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

请注意,我使用的正则表达式是java / c / c ++中的标准标识符,根据需要更改它。

答案 1 :(得分:1)

将其封装到cut[...] | cut -d: -f3

答案 2 :(得分:1)

我建议 sed

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

awk

awk -F: '{ print $NF }'

或者,如果您明确希望第三个​​以冒号分隔的字段(而不是 last 字段):

awk -F: '{ print $3 }'

或者,如果您只想使用 bash 内置词:

while read line; do echo "${line##*:}"; done

答案 3 :(得分:0)

一个班轮bash脚本:

for line in $(cat test); do echo ${line//*::}; done

答案 4 :(得分:0)

while read line; do 
  echo "${line##*:}"  # removes everything up to and including the last colon
done < input.file