0

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

   $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 由于其与字段数量相关的限制而无法工作。

4

2 回答 2

1
awk '{$2 = $4 = ""}1' FS=, OFS=, file1 > file2
于 2013-11-06T04:37:47.880 回答
0
awk 'BEGIN { FS = OFS = ","; } { $2 = $4 = ""; print }' file1 > file2

其中,简单地说:

  1. 在开始时将输入和输出字段分隔符设置,为,
  2. 为每一行清空字段 2 和 4,然后将行打印回来。
于 2013-11-06T05:44:18.353 回答