繁体   English   中英

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

[英]To remove undesired lines using linux command

我有一个以下形式的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等来实现

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

这将删除文件test.txt中不以0-9开头的所有行

使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM