Sed命令提取数字组

时间:2015-07-23 09:14:07

标签: sed

我有3个如下声明:

abcdef       (123)
adf4fggggh   (456)
ssff444fgff  (4667)

通过使用sed命令,我需要提取最后一个数字,即1234564667

3 个答案:

答案 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
  • 具有一点安全性的posix版本(在线不对应)
  • 您可以在数字类可能出现负值之前添加-\{0,1\}(如果也可能出现虚线值,则与.相同)