需要帮助创建Linux脚本吗
我有以下资料:需要帮助创建Linux脚本吗,linux,if-statement,command-line,replace,Linux,If Statement,Command Line,Replace,我有以下资料: ... #define DIRT 4 #define PLANKS 5 #define WOOD_PLANKSs 5 #define BRICKS 6 ... 我需要删除其中一条与前面的行编号相同的行(例如,删除木板,因为木板的编号相同,5) 在linux(或Windows)脚本中是否有这样做的方法,也许可以使用if-then语句?在linux中,使用uniq命令和-f参数跳过前两个字段的比较:uniq-f2在linux中,使用uniq命令,以及要跳过比较前两个字段的-f参数:
...
#define DIRT 4
#define PLANKS 5
#define WOOD_PLANKSs 5
#define BRICKS 6
...
我需要删除其中一条与前面的行编号相同的行(例如,删除木板,因为木板的编号相同,5)
在linux(或Windows)脚本中是否有这样做的方法,也许可以使用if-then语句?在linux中,使用
uniq
命令和-f
参数跳过前两个字段的比较:uniq-f2
在linux中,使用uniq
命令,以及要跳过比较前两个字段的-f
参数:uniq-f2
创建一个名为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文件名创建一个名为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因此,如果我想删除file.txt中的WOOD_PLANKS行,那么我将使用什么?上面的命令将删除
WOOD_PLANKS
(以及具有重复第三列的任何其他行)通过发出uniq-f2 file.txt
那么如果我想删除file.txt中的木板行,那么我会使用什么?上面的命令将通过发出uniq-f2 file.txt来删除WOOD_PLANKS
(以及具有重复第三列的任何其他行)。txt
您的文件是否只包含“define”条目,还是文件中的其他行?重复条目总是连续的吗?重复值总是连续的,它只由#定义名称#然后使用carlpett的解决方案;)组成。您的文件仅由“定义”条目组成,还是文件中的其他行组成?重复条目总是连续的吗?重复值总是连续的,它只由#定义名称#然后使用carlpett的解决方案;)组成。嗯,这看起来像是我即将发布的解决方案,如果文件中可能包含其他非定义行,那么这将是必需的+1.为了努力;)当我可以访问linux计算机或可以找到联机shell时,我将尝试此方法。好吧,这看起来像我即将发布的解决方案,如果该文件可能包含其他非定义行,那么这将是必需的+1.为了努力;)当我可以访问linux计算机或可以找到在线shell时,我将尝试此方法。