以下腳本部分讀取$next
中的每一行。但是,當我嘗試用grep即"MO"
特定的模式在$next
,顯示在標準輸出誤差爲:grep in IF語句
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
$E1.out
文件看起來像:
40922|OPR MO 12345|OPR MO 12345|12345|202|local|LMNO
在一個單獨的說明,您可以避免AWK的所有調用通過改變讀稍微命令:'而IFS =「|」閱讀i j k l m n o; do ...'(注意這只是爲讀命令設置IFS,所以你不必在之後設置它)。 – 2010-10-15 20:17:13