awk -F\; '{if(S[$4] == "" || S[$4] == "-"){S[$4] = $3}} END {for(k in S){print 请问S是什么意思?谢

问题描述:

awk -F\; '{if(S[$4] == "" || S[$4] == "-"){S[$4] = $3}} END {for(k in S){print 请问S是什么意思?谢

S是数组名字,awk中支持数组型变量,并且使用之前不需要申明.
所以上面的语句其实是对文本按照 ; 分列.并用分列后的数据组织了一个数组
数组的内容为该数据的第4列,当第4列为空时,为相应行第3列的值.