我在Linux上的文本文件中有以下类型的文本模式。我只需要获得本文的最后部分。我怎么能得到它?
tmk.mfg.pref.ZPreferes::getKey
com.sun.star.uno.SCompentCont::getSage
com.sun.star.lang.XMultiComponentFactory::createInstanceWithContext
我只需要每行的最后一部分,即getKey,getSage等。任何人都可以告诉我如何使用cut或任何其他命令来获取它。 提前谢谢。
答案 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