过滤第三列有数字的 TSV 文件行

Filter lines of TSV file that have a number on third column

我有一个像这样的 TSV 文件:

análisis de elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  4
análisis de elementos finitos
elemento finito http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  5
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
elementos finitos
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
finite element method   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos
finite element method
método de elementos finitos http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  7
método de elementos finitos http://es.dbpedia.org/resource/Método_de_los_elementos_finitos
método de los elementos

análisis 5 de elementos finitos http://es.dbpedia.org/resource/Método3_de_los_elementos_finitos 4
elemento 4 finito   http://es.dbpedia.org/resource/Método_de4_los_elementos_finitos 5
elementos3 finitos  http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
finite element-1 method http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  2
método de elementos finitos http://es.dbpedia.org/resource/Método5_de_los_elementos5_finitos    7

我只想用末尾有数字的行(第三列)过滤该文件:

análisis de elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  4
elemento finito http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  5
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
método de elementos finitos http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  7
análisis 5 de elementos finitos http://es.dbpedia.org/resource/Método3_de_los_elementos_finitos 4
elemento 4 finito   http://es.dbpedia.org/resource/Método_de4_los_elementos_finitos 5
elementos3 finitos  http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
finite element-1 method http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  2
método de elementos finitos http://es.dbpedia.org/resource/Método5_de_los_elementos5_finitos    7

我已经试过了,但根本不起作用:

cat test | awk 'NF>=3' >> cleaned_test

希望你能帮助我。提前致谢。

因为数字在行尾,我们可以使用下面的命令来显示所有以数字结尾的行:

grep '[0-9]$' test.txt

我本地机器上的示例:

$ cat test.txt
análisis de elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  4
análisis de elementos finitos
elemento finito http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  5
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
elementos finitos
finite element method   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  2
finite element method   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos
finite element method
método de elementos finitos http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  7
método de elementos finitos http://es.dbpedia.org/resource/Método_de_los_elementos_finitos
método de los elementos
$
$
$ grep '[0-9]$' test.txt
análisis de elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  4
elemento finito http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  5
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
finite element method   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  2
método de elementos finitos http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  7
$

根据您的示例数据,看起来您想要的行 有 URL。这是一个检查 http(或 https)和行尾数字的 awk

$: awk '/https*:\/\// && / [0-9]+/ { print }' file
análisis de elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  4
elemento finito http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  5
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
método de elementos finitos http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  7
análisis 5 de elementos finitos http://es.dbpedia.org/resource/Método3_de_los_elementos_finitos 4
elemento 4 finito   http://es.dbpedia.org/resource/Método_de4_los_elementos_finitos 5
elementos3 finitos  http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
finite element-1 method http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  2
método de elementos finitos http://es.dbpedia.org/resource/Método5_de_los_elementos5_finitos    7

如果除了显然嵌入在第 1 列中的空格之外,您还有不同的列分隔符,我们可以使用它。我添加了标签。现在我可以专门检查第三列的数字了。

$: awk -F'\t' '{if(~/[0-9]+/){print}}' file
análisis de elementos finitos   http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  4
elemento finito http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  5
elementos finitos       http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
elementos finitos       http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
método de elementos finitos     http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  7
análisis 5 de elementos finitos http://es.dbpedia.org/resource/Método3_de_los_elementos_finitos 4
elemento 4 finito       http://es.dbpedia.org/resource/Método_de4_los_elementos_finitos 5
elementos3 finitos      http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  29
finite element-1 method http://es.dbpedia.org/resource/Método_de_los_elementos_finitos  2
método de elementos finitos     http://es.dbpedia.org/resource/Método5_de_los_elementos5_finitos        7