如何从只有数值(没有英文字母)的 csv 文件中获取行?

-4 grep sed awk text-processing

我想从只包含数字的 CSV 文件中获取行。我的输入文件如下所示:

8.1.0,289,,,,,,,,,,,,,,,,
9,260,,,,,,,,,,,,,,,,
10,207,,,,,,,,,,,,,,,,
9,206,,,,,,,,,,,,,,,,
Note,8,,,,,,,,,,,,,,,,
10,194,,,,,,,,,,,,,,,,
8.1.0,184,,,,,,,,,,,,,,,,
Run Code Online (Sandbox Code Playgroud)

它应该能够获得上述格式的数字,例如99.0.08.1等。

我该如何使用csvgreporawksed命令呢?CSV 文件有两列。它应该省略其中包含任何字母的行。

Rom*_*nov 5

您可以使用该grep命令,如下所示:

grep -v "[A-Za-z]" filename > filename.output
Run Code Online (Sandbox Code Playgroud)

这是测试:

# cat zz2
1;2
a,1
2,B
                                                                                                                   
# grep -v "[A-Za-z]" zz2
1;2
Run Code Online (Sandbox Code Playgroud)

要过滤空行,您可以使用:

grep -v "[A-Za-z]" zz2 | grep -v '^$'
Run Code Online (Sandbox Code Playgroud)


αғs*_*нιη 5

使用awk和 验证所有字段都包含有效数字并跳过空字段。

awk -F, '{ for(i=1; i<=NF; i++) if($i+0!=$i && $i!="") next }1' infile
Run Code Online (Sandbox Code Playgroud)