需要帮助创建Linux脚本

时间:2013-10-21 19:21:26

标签: linux if-statement command-line replace

我有以下内容:

...
#define DIRT 4
#define PLANKS 5
#define WOOD_PLANKSs 5
#define BRICKS 6
...

我需要删除其中一行与其前面的行相同的行(例如,删除木板,因为木制图具有相同的编号,5)。

是否有一种方法可以在linux(或Windows)脚本中执行此操作,可能使用if then语句?

2 个答案:

答案 0 :(得分:5)

在Linux中,使用uniq命令和-f参数跳过比较前两个字段:uniq -f 2 <your-file>

答案 1 :(得分:2)

创建名为removeDup.awk的awk脚本

  1 BEGIN      { lastDefine=""
  2            }
  3 /^#define/ { if (lastDefine=="") {
  4                lastDefine=$3
  5              } else {
  6                if (lastDefine==$3) {
  7                  next
  8                } else {
  9                  lastDefine=$3
 10                }
 11              }
 12            }
 13            { print
 14            }

awk -f removeDup.awk filename