python - 如何按特定列中的字符数截断文件

标签 python regex bash awk sed

我有 4 列,由 ; 分隔。

第 3 或第 4 列中的某些行超过 10000 个字符。

无论是哪一列,如果一个特定列的长度超过 10000 个字符,您将如何删除这些行?

我试过了

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

但它占用了整个文件,而不仅仅是特定的列,我想要列的长度,无论它是第 3 列还是第 4 列,或者两者都是。

TIA

最佳答案

您只需要:

$ cat file
a;b;c
d;efg;h
i;j;klm
opqr;s;t
uv;wx;yz

$ egrep -v '[^;]{3}' file
a;b;c
uv;wx;yz

$ awk '!/[^;]{3}/' file
a;b;c
uv;wx;yz

$ sed -r '/[^;]{3}/d' file
a;b;c
uv;wx;yz

将“3”更改为 1001 或其他...

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

相关文章:

python - Scrapy 蜘蛛获取链接内的信息

Python:在大型 jsonl 文件中查找重复项

python - 符号条件和

c# - 正则表达式 .net 拆分

php 正则表达式(过滤器?)不应使用正则表达式的地方

c++ - 在 CentOS 6.4 上使用 Boost.Regex 1.53 和 gcc 4.8.1 随机断言失败

bash - 在函数中将值设置为数组的元素

bash - crontab 上的备份脚本不起作用

python : hex to date time

linux - 使用 GetOpts 和强制参数验证命令行参数