抱歉,如果用AWK无法做到这一点,但这是我能用AWK想到的。
我有一个CSV文件(制表符分隔),它有大约10个带有大标题部分的列。内容如下:
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
我不需要按col1-9过滤,但只需要逐行查看col10。 col10的每一行中的内容都是这样的
int1/int2: int3,int4: int5: int6
我的过滤条件是:if int3 + int4 >= 30
,我会将其打印到新的csv文件中,否则将其过滤掉(无打印)。
这是否可以将AWK与shell脚本结合使用(逐行读取?)?非常感谢您阅读我的问题
答案 0 :(得分:4)
试试这个
awk -F'\t' -v OFS='\t' '{ t = $10
split(t,x,":")
split(x[2],a,",")
}(a[1]+a[2])>=30' oldcsv > newcsv
或更短:
awk -F'\t' -v OFS='\t' '{t=$10; split(t,a,/[:,]/)}(a[3]+a[2])>=30' oldcsv > newcsv
没有测试,但如果10美元的格式是固定的,那么应该可行。