If statement 我无法在IF语句中传递变量

If statement 我无法在IF语句中传递变量,if-statement,awk,If Statement,Awk,此脚本的目标是在rpt1 rpt2 txt文件中检查具有类似名称的文件。这里的Rpt1和rpt2是两个txt文件,我已经在程序的前一部分中提取了目录(fold1 fold3)信息。我已经运行了这个脚本。它的投掷错误 错误: 5.sh[74]:第92行的语法错误:`“'不匹配 74是什么意思?92是什么意思?请帮我解决这个问题。 提前谢谢 72 line=1 74 while [ $line -le $total1 ] 75 do 77 memr=$(sed -n "${line}p" r

此脚本的目标是在rpt1 rpt2 txt文件中检查具有类似名称的文件。这里的Rpt1和rpt2是两个txt文件,我已经在程序的前一部分中提取了目录(fold1 fold3)信息。我已经运行了这个脚本。它的投掷错误

错误: 5.sh[74]:第92行的语法错误:`“'不匹配

74是什么意思?92是什么意思?请帮我解决这个问题。 提前谢谢

72  line=1
74  while [ $line -le $total1 ]
75  do
77  memr=$(sed -n "${line}p" rpt1.txt| awk '{print $3}')
80  if [ $memr != 512 ]; #checking for file
82  then
84  line2=1 #count value for rpt2
86          while [ $line2 -le $total2 ]
87          do
88          (
90          search=$(  sed -n "${line}p" rpt1.txt | awk -F"/" '{print $NF}' )
92          if [ "$(grep "$search" "awk -F"/" '{print $NF}' rpt2.txt)" != ''        ]
93          then
94          if [ "awk '/$search/ {print $3}' rpt1.txt" -eq    "awk '/$search/ {print $3}' rpt2.txt" ]
95          then
96          echo "$search is duplicate" "location 1 is" "$(awk '/$search/' {print $4}' rpt1.txt)"
98          "$(awk '/$search/' {print $4}' rpt2.txt)"
100 fi 101 fi 102 echo“$search”是唯一的文件 103 line2=
expr$line2+1
104完成 106 line1=
expr$line1+1

107完成

好吧,92是它抱怨不匹配双引号的那一行,这是正确的-那一行有七个双引号,所以你肯定有问题


我不完全确定为什么在
awk
命令前面有一个,我觉得这不合适。

92:您是否试图查看
rpt2.txt
最后一个字段中出现的
$search

如果是,则可以按如下方式重写该行:

if [ "$(awk -F'/' '$NF=="'"$search"'"' rpt2.txt)" ] ; 

这是我第一次在IF语句中直接使用awk和grep。除此之外,我还在grep中调用模式和文件时间。我已经修复了双引号。但是还有一些错误仍然存在。@user2182951,那么它们将是另一个问题的合适主题:-)