如何使用sed删除前导数字?

我有一个文件:

$ cat file 1 Fred 2 Fred3 3 Fred3 4 Fred3 5 Fred3 6 Fred3 7 Fred3 8 Fred3 9 Fred3 10 Fred3 11 Fred3 12 Fred288 

我想删除前面的数字,输出应该是这样的:

 $ cat file Fred Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred288 

我如何使用sed来实现这个目标?

Solutions Collecting From Web of "如何使用sed删除前导数字?"

sed

 sed 's/^[0-9]\+ //' file Fred Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred3 Fred288 

执行sed -i 's/^[0-9]\+ //' file将更改存储回文件。


我也建议使用cut

 cut -d' ' -f2 file 

选项:

-d,–delimiter = DELIM使用DELIM而不是TAB作为字段分隔符

-f,–fields = LIST只选择这些字段; 还打印任何不包含分隔符的行,除非指定了-s选项

这将打印每行中的第二个单词:

 awk '{print $2}' file 

我们可以使用sed来做到这一点

 sed -r 's/^[0-9]+//g' file 

sed -r告诉我们将会使用正常的扩展。 我们告诉sed从行“^”的开始处开始,并以多种形式查找数字“[0-9] +”// g“在全局范围内执行。