awk 对$0操作,该如何解决
awk 对$0操作
awk 对$0进行如下操作FS=","
1 去掉$1
2 如果最后一列$0以“,”结尾($23是否为空)那么去掉该逗号
举例说明:
正常情况($0的值):
a,1,3,2,4,5,2,5
异常情况($0的值):
a,1,3,2,4,5,2,5,
现在就要先去掉"a,",然后判断5后边是否有一个逗号,如果有就去掉
因为文件是从xls文件转换成文本文件的,xls文件最后一列的后边一列(没有值)可能因为进行了某些写操作虽然最后没有写入任何内容,然后转换成文本后就多了一个逗号,当然没有进行任何操作的行后边肯定不会多一个逗号
------解决方案--------------------
awk 对$0进行如下操作FS=","
1 去掉$1
2 如果最后一列$0以“,”结尾($23是否为空)那么去掉该逗号
举例说明:
正常情况($0的值):
a,1,3,2,4,5,2,5
异常情况($0的值):
a,1,3,2,4,5,2,5,
现在就要先去掉"a,",然后判断5后边是否有一个逗号,如果有就去掉
因为文件是从xls文件转换成文本文件的,xls文件最后一列的后边一列(没有值)可能因为进行了某些写操作虽然最后没有写入任何内容,然后转换成文本后就多了一个逗号,当然没有进行任何操作的行后边肯定不会多一个逗号
------解决方案--------------------
- JScript code
awk -F "," '{ if(match($0,/.*,$/)){for(i=2;i<NF-1;++i) printf("%s%s",$i,FS);printf("%s\n",$i)} else {for(i=2;i<NF;++i) printf("%s%s",$i, FS);printf("%s\n",$i);}}' fileName
------解决方案--------------------
也差不多吧
awk -F, '{sub(/[^,]*,/,""); sub(/,$/,""); print}' yourfile
------解决方案--------------------
awk -F, '{sub(/[^,]*,/,""); sub(/,*$/,""); sub(/^,*/,""); print}'
这个应该适用的
------解决方案--------------------
------解决方案--------------------