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

时间:2012-12-13 17:57:39

标签: linux 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实现此目标?

3 个答案:

答案 0 :(得分:8)

使用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选项已指定

答案 1 :(得分:3)

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

awk '{print $2}' file

答案 2 :(得分:1)

我们可以用sed来做这个

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

sed -r告诉我们将使用常规的expersion。 我们告诉sed从行“^”的开头开始,并告诉我以多种形式“// g”寻找数字“[0-9] +”全球。