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

时间:2013-03-20 05:47:11

标签: 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" 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完成了

2 个答案:

答案 0 :(得分:0)

好吧,92就是它抱怨无法比拟的双引号,这是正确的 - 那条线上有七个双引号,所以你肯定有问题。

我不完全确定为什么你在awk命令之前有一个 - 这对我来说似乎不合适。

答案 1 :(得分:0)

92:你是否试图在rpt2.txt中查看最后一个字段中$search的出现次数?

如果是,那么您可以按如下方式重写该行:

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