我有一个包含四个值的 .tsv 文件(由制表符分隔的值)。因此,每一行应该只有三个选项卡,并且每个选项卡周围都有一些文本,如下所示:
value value2 value3 value4
Run Code Online (Sandbox Code Playgroud)
但看起来有些行被破坏了(有超过三个选项卡)。我需要找出这些线。
我想出了以下 grep 模式。
grep -v "^[^\t]+\t[^\t]+\t[^\t]+\t[^\t]+$"
我的想法:
然后我只是将其按正确的顺序排列正确的次数。这应该匹配正确的行。所以我通过 -v 选项恢复它以获得错误的行。
但是使用 -v 选项,它会匹配文件中的任何行以及我尝试过的一些随机文本,其中没有任何选项卡。
请问我的错误是什么?
编辑:我正在使用 debian 和 bash。