3

我有一个文件:

$ 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 实现这个目标?

4

3 回答 3

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 选项

于 2012-12-13T18:00:14.917 回答
4

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

awk '{print $2}' file
于 2012-12-13T17:59:40.563 回答
0

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

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

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

于 2016-08-15T08:51:01.217 回答