If statement 我无法在IF语句中传递变量
此脚本的目标是在rpt1 rpt2 txt文件中检查具有类似名称的文件。这里的Rpt1和rpt2是两个txt文件,我已经在程序的前一部分中提取了目录(fold1 fold3)信息。我已经运行了这个脚本。它的投掷错误 错误: 5.sh[74]:第92行的语法错误:`“'不匹配 74是什么意思?92是什么意思?请帮我解决这个问题。 提前谢谢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
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,那么它们将是另一个问题的合适主题:-)