从文件保留分隔符中删除字段完整

时间:2013-11-06 04:33:27

标签: linux bash shell unix awk

我们需要使用shell脚本删除分隔文件中的某些字段,但我们不想丢失分隔符。即

   $cat file1
        col1,col2,col3,col4,col5 
        1234,4567,7890,9876,6754
        abcd,efgh,ijkl,rtyt,cvbn

 now we need to generate different file (say file2) out of file1 with second and fourth column removed with delimeter (,) intact
 i.e
   $cat file2
        col1,,col3,,col5 
        1234,,7890,,6754
        abcd,,ijkl,,cvbn

请建议实现此目的的最简单有效的方法,因为文件有大约300个字段/列AWK由于其与字段数量相关的限制而无法正常工作。

2 个答案:

答案 0 :(得分:1)

awk '{$2 = $4 = ""}1' FS=, OFS=, file1 > file2

答案 1 :(得分:0)

awk 'BEGIN { FS = OFS = ","; } { $2 = $4 = ""; print }' file1 > file2

其中,只是说:

  1. 设置输入&在开始时将字段分隔符输出到,
  2. 清空领域2&每行4个,然后打印回来。