此脚本的目的是检查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完成了
答案 0 :(得分:0)
好吧,92就是它抱怨无法比拟的双引号,这是正确的 - 那条线上有七个双引号,所以你肯定有问题。
我不完全确定为什么你在awk
命令之前有一个 - 这对我来说似乎不合适。
答案 1 :(得分:0)
92:你是否试图在rpt2.txt
中查看最后一个字段中$search
的出现次数?
如果是,那么您可以按如下方式重写该行:
if [ "$(awk -F'/' '$NF=="'"$search"'"' rpt2.txt)" ] ;