我有3个如下声明:
abcdef (123)
adf4fggggh (456)
ssff444fgff (4667)
通过使用sed命令,我需要提取最后一个数字,即123
,456
,4667
答案 0 :(得分:3)
你可以通过替换来做到这一点。此RegEx将匹配整条线,捕获数字并将数字放回。
假设您的行位于名为file.txt的文件中:
sed 's/.*(\([0-9]\+\))/\1/' file.txt
答案 1 :(得分:1)
grep获取最后一个括号之间的数字:
grep -Po '\d+(?=\)$)'
或
awk -F'[)(]' '{print $(NF-1)}'
答案 2 :(得分:0)
sed -n '/.*(\([0-9]\{1,\}\))[[:blank:]]*$/ s//\1/p' file.txt
-\{0,1\}
(如果也可能出现虚线值,则与.
相同)