【发布时间】:2020-03-11 17:58:00
【问题描述】:
很简单,我有一个 csv 文件,其中一列应该只包含整数。但是,并非所有这些都是整数,我想检查这个文件(超过 5 GB 大)并捕获行号和(最好)不是整数的值。我尝试了很多方法,例如使用口罩,但都无济于事。
例如,我们有以下 csv 表:
ID
5342
76375
sdfg23
2342lslf
jfijfojwo
395-34425
abc-24523
afhfhue3224
我想知道第 3、4、5、6、7 和 8 行不是整数。输出看起来像(作为数据框/表等价物):
+-------------+------+
| ID | Row |
+-------------+------+
| sdfg23 | 3 |
| 2342lslf | 4 |
| jfijfojwo | 5 |
| 395-34425 | 6 |
| abc-24523 | 7 |
| afhfhue3224 | 8 |
+-------------+------+
或者甚至只是将行号溢出到标准输出会非常有帮助。
我尝试过使用sed 之类的方法,例如:sed -n '/?![[:digit:]]=' csvfile.csv
【问题讨论】:
-
几行示例(例如 3-5 行)、预期输出以及您尝试过的至少一个命令将大大有助于使您的问题更清晰、更容易回答
-
对不起!我修好了,现在应该更清楚了@Sundeep
-
sed -n '/[^0-9]/p' file? -
?!是环视语法,在sed或awk中不可用。无论如何你需要否定字符类[^[:digit:]]