我需要了解如何使用 sed 删除文本文件中行尾最多10 位数字。
例如,如果我有这个:
ajsdlfkjasldf1234567890
asdlkjfalskdjf123456
adsf;lkjasldfkjas123
它应该变成:
ajsdlfkjasldf
asdlkjfalskdjf
adsf;lkjasldfkjas
谁能帮忙?
我有这个,但它不起作用:
sed 's/[0-9]{10}$//g'
你有没有试过这个:
sed 's/[0-9]+$//'
您的命令只会匹配并删除行尾的 10 位数字,并且仅在启用扩展正则表达式(-E 或 -r,取决于您的 sed 版本)的情况下。
你应该试试
sed -r 's/[0-9]{1,10}$//'
以下应该有效:
sed 's/[0-9]\{1,10\}$//' file
中的正则表达式语法sed
要求括号前的反斜杠用于重复,除非您使用扩展的正则表达式选项。
在这里快速浏览一下建议你应该试试这个:
$ sed 's/[0-9]\{0,10\}$//g'
{ } 应该被转义,除非你切换到扩展的正则表达式语法:
$ sed -r 's/[0-9]{0,10}$//g'