Sed命令提取一组数字
我有如下3种说法:Sed命令提取一组数字,sed,Sed,我有如下3种说法: abcdef (123) adf4fggggh (456) ssff444fgff (4667) 通过使用sed命令,我需要提取最后的数字,即123,456,4667,您可以通过替换来完成此操作。这个正则表达式将匹配整行,捕获数字并将数字放回原处 假设您的行位于名为file.txt的文件中: sed的/*(\([0-9]\+\)/\1/'file.txt s- /- *-匹配 (-匹配括号 \(-开始 [0-9]\+-匹配(捕获)任何 \)-关闭 )-匹
abcdef (123)
adf4fggggh (456)
ssff444fgff (4667)
通过使用sed命令,我需要提取最后的数字,即
123
,456
,4667
,您可以通过替换来完成此操作。这个正则表达式将匹配整行,捕获数字并将数字放回原处
假设您的行位于名为file.txt的文件中:
sed的/*(\([0-9]\+\)/\1/'file.txt
- s-
- /-
- *-匹配
- (-匹配括号
- \(-开始
- [0-9]\+-匹配(捕获)任何
- \)-关闭
- )-匹配最后一个括号
- /-
- \1-打印第一个替换上一个正则表达式匹配项
- /-
- 您可以通过替换来完成此操作。这个正则表达式将匹配整行,捕获数字并将数字放回原处
假设您的行位于名为file.txt的文件中:
sed的/*(\([0-9]\+\)/\1/'file.txt
- s-
- /-
- *-匹配
- (-匹配括号
- \(-开始
- [0-9]\+-匹配(捕获)任何
- \)-关闭
- )-匹配最后一个括号
- /-
- \1-打印第一个替换上一个正则表达式匹配项
- /-
grep -Po '\d+(?=\)$)'
或
grep获取最后括号之间的数字:
grep -Po '\d+(?=\)$)'
或
- 带有一点安全性的posix版本(不对应的在线)
- 您可以在digit类可能出现负值之前添加一个
(如果也可能出现虚线值,则与-\{0,1\}
的想法相同)
- 带有一点安全性的posix版本(不对应的在线)
- 您可以在digit类可能出现负值之前添加一个
(如果也可能出现虚线值,则与-\{0,1\}
的想法相同)
sed -n '/.*(\([0-9]\{1,\}\))[[:blank:]]*$/ s//\1/p' file.txt