我有以下内容:
...
#define DIRT 4
#define PLANKS 5
#define WOOD_PLANKSs 5
#define BRICKS 6
...
我需要删除其中一行与其前面的行相同的行(例如,删除木板,因为木制图具有相同的编号,5)。
是否有一种方法可以在linux(或Windows)脚本中执行此操作,可能使用if then语句?
答案 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