UNIX:删除包含字符串&的所有行数

时间:2016-02-09 05:29:40

标签: bash unix awk sed grep

我有TXT个文件,行数约为1百万。

#Test.txt
zs272
zs273
zs277
zs278
zs282
zs285
zs288
zs289
zs298
zs300
zs7
zsa
zsag
zsani179yukkie
zsani182zaide
zsaqgiw
zsb86581
zsbguepqtkcn
zscazn
zscfhlsv
zscgxadrwijl
zsclions111yuen
zscwqtk
zscz
zsder
zsdfdgdgg

我想删除包含数字并且只保留字符串的行。

我试过了,

grep -v '^[1-9]' Test.txt > 1_Test.txt

无法获得所需的结果。

预期产出:

#1_Test.txt
    zsa
    zsag
    zsbguepqtkcn
    zscazn
    zscfhlsv
    zscgxadrwijl
    zscwqtk
    zscz
    zsder
    zsdfdgdgg

3 个答案:

答案 0 :(得分:2)

只需删除行锚^的开头即可。  ^[1-9]正则表达式仅匹配开头存在的数字1-9。

grep -v '[1-9]' Test.txt > 1_Test.txt

适用于所有数字,包括0。

grep -v '[0-9]' Test.txt > 1_Test.txt

答案 1 :(得分:2)

$questionID = isset($_GET['question_id'])? $_GET['question_id'] : '';

if(!empty($questionID)){
  //Use $questionID here to query some data from database
}

如果你想编辑你的文件"就地"使用sed的选项sed '/[0-9]/d' file

-i

使用bash:

awk '!/[0-9]/' file

答案 2 :(得分:0)

AWK的解决方案!

awk '!/[0-9]+/{print}' file