使用linux命令删除不需要的行

时间:2013-10-20 04:39:18

标签: linux unix

我有以下格式的csv文件(1TB):

 1     hi hello
 2     users badges
 abc def
 3     questions
 4     tags
 Unanswered answered

每当我在行的开头有一个字符串时,我想删除该行,每当我在行的开头有一个数字(整数)时我想保留该行。 我希望输出采用以下格式:

 1     hi hello
 2     users badges
 3     questions
 4     tags

是否可以使用linux命令实现它。我知道可以使用像python这样的编程语言实现这一点,但是可以使用cat和sed等来实现

2 个答案:

答案 0 :(得分:2)

sed '/^[^0-9].*/d' test.txt

删除文件test.txt

中不以0-9开头的所有行

答案 1 :(得分:0)

使用grep过滤行:

$ cat > a_file
 1     hi hello
 2     users badges
 abc def
 3     questions
 4     tags
 Unanswered answered
$ grep '^ *[0-9]' a_file > a_file.modified
$ cat a_file.modified
 1     hi hello
 2     users badges
 3     questions
 4     tags
$ mv a_file.modified a_file