我有一个文件test.txt
,内容如下:
SCDE1
SF9
STR1D2
SREDF21
FRED
STER2R4
我只想删除最后一个字符(如果它是数字),因此输出应如下所示:
SCDE
SF
STR1D
SREDF2
FRED
STER2R
答案1
这符合您的标准吗?
输入数据:
cat user324294
SCDE1
SF9
STR1D2
SREDF21
FRED
STER2R4
和转变:
sed 's/[0-9]$//' user324294
SCDE
SF
STR1D
SREDF2
FRED
STER2R
正则表达式的说明:行尾后面的任何数字都将被替换为空。
答案2
如果最后一个字符是数字,则会删除它。
sed 's|[0-9]$| |g' file
输出:
SCDE
SF
STR1D
SREDF2
FRED
STER2R
答案3
您需要的是一个正则表达式(正则表达式)来匹配您的文本。
匹配的正则表达式一号码是[0-9]
。该行的末尾是$
。
两者一起:
[0-9]$
现在,我们可以使用sed
删除每行上的文本:
sed 's/[0-9]$//' test.txt
如果您需要替换多个数字,请使用重复修饰符,在本例中可能是 *。不是你要问的,但了解很有用:
sed 's/[0-9]*$//' test.txt