0

此脚本的目的是检查 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" "is unique file" 103 line2= expr $line2 +1 104 done 106 line1= expr $line1 +1 107 done

4

2 回答 2

0

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

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

于 2013-03-20T06:01:44.470 回答
0

92:你是否试图寻找rpt2.txt最后$search一个领域的出现?

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

if [ "$(awk -F'/' '$NF=="'"$search"'"' rpt2.txt)" ] ; 
于 2013-03-20T06:40:32.530 回答