以下脚本部分读取每一行$next
.但是,当我尝试到grep特定的模式,即"MO"
在$next
被显示在标准输出中的错误:
grep: 40922|OPR: No such file or directory
grep: MO: No such file or directory
grep: 12345|OPR: No such file or directory
grep: MO: No such file or directory
grep: 12345|12345|202|local|LMNO: No such file or directory
cat /home/scripts/$E1.out | while read next
do
i=`echo $next | awk -F"|" '{print($1)}'`
j=`echo $next | awk -F"|" '{print($2)}'`
k=`echo $next | awk -F"|" '{print($3)}'`
l=`echo $next | awk -F"|" '{print($4)}'`
m=`echo $next | awk -F"|" '{print($5)}'`
n=`echo $next | awk -F"|" '{print($6)}'`
o=`echo $next | awk -F"|" '{print($6)}'`
if grep -q "MO" $next
then echo "FOUND;" >> /home/scripts/sql.$E1.out
else echo "NOT FOUND;" >> /home/scripts/sql.$E1.out
fi
done
Run Code Online (Sandbox Code Playgroud)
$E1.out
文件看起来像:
40922|OPR MO 12345|OPR MO 12345|12345|202|local|LMNO
Run Code Online (Sandbox Code Playgroud)
Bri*_*ell 24
你传递给参数grep
,$next
,被视为文件名进行搜索的列表.如果您想在该行中搜索字符串,比如说,MO
那么您需要将其放在一个文件中并将该文件作为参数传递,或者通过标准输入将其传入.
这是一个可以在命令行上试用的例子; 当然,将您使用的变量替换为我所包含的文字值来说明:
if echo "40922|OPR MO 12345|OPR MO 12345|12345|202|local|LMNO" | grep -q "MO"
then echo "FOUND"
else echo "NOT FOUND"
fi
Run Code Online (Sandbox Code Playgroud)