regex - sed 删除行尾的数字

标签 regex linux sed

我需要了解如何使用 sed 删除文本文件中行末尾的最多 10 位数字。

例如,如果我有这个:

ajsdlfkjasldf1234567890
asdlkjfalskdjf123456
adsf;lkjasldfkjas123

它应该变成:

ajsdlfkjasldf
asdlkjfalskdjf
adsf;lkjasldfkjas

谁能帮忙?

我有这个,但它不起作用:

sed 's/[0-9]{10}$//g'

最佳答案

你试过这个吗:

     sed 's/[0-9]+$//'

如果启用了扩展正则表达式(-E 或 -r,取决于您的 sed 版本),您的命令只会匹配并删除行尾的 10 位数字。

你应该试试

     sed -r 's/[0-9]{1,10}$//'

关于regex - sed 删除行尾的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707320/

相关文章:

javascript - 在 match() 中应用两个正则表达式规则

linux - 内核启动错误 - 我可以获取日志吗?

java - 使用 Java Runtime.exec 在 Ubuntu 中通过终端触发命令

linux - 如何用其他文本替换部分系统日志尾部?

linux - 在 sed bash 中写一个特殊字符

java - 使用正则表达式分割字符串。 java

java - 使用 '|' 拆分字符串

regex - 这怎么办?运算符(operator)在正则表达式中工作?

linux - httpd/apachectl 服务无法在 RHEL 7 上启动

shell - 如何在 shell 中的两列之间插入不同的分隔符