我有4列,以;分隔。

第三或第四列中的某些行很大,超过10000个字符。

不管哪几列,一列的长度超过10000个字符时,如何删除这些行?

我尝试过

awk '{i += (length() + 1); if (i <= 10000) print $ALL}'

但这要占用整个文件,而不仅是特定的列,而且我要的是列的长度,而不管它是第3还是第4或两者兼而有之。

TIA

最佳答案

你可以使用这个awk:

awk -F ';' 'length($3)<10000 && length($4)<10000' file

这将仅打印字段 3 和字段 4 长度小于 10000 的那些行。因此,换句话说,如果这些列中的任何一列的长度>=10000,那么这些行将不会在输出中打印。

关于python - 如何按特定列中的字符数截断文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27606664/

10-12 05:59