使用awk帮助基于字段复制行

时间:2010-12-05 02:35:59

标签: bash unix awk

我有以下数据集,第3个字段由0和1组成

Input 

1 2 1
2 4 0
3 3 1
4 1 1
5 0 0

我希望将数据集扩展为以下格式

  1. 根据第二个字段和

  2. 复制每一行
  3. 仅将第3个字段中的“新”1(复制后获取)替换为0

  4. 如何使用AWK执行此操作?

    由于

    Output 
    1 2 1
    1 2 0
    2 4 0
    2 4 0
    2 4 0
    2 4 0
    3 3 1
    3 3 0
    3 3 0
    4 1 1
    

1 个答案:

答案 0 :(得分:2)

awk '{print; $3=0; for (i=1; i<$2; i++) print}' inputfile

如果你想在第二个字段中实际跳过零值的记录(如你的例子所示):

awk '{if ($2>0) print; $3=0; for (i=1; i<$2; i++) print}' inputfile