Phần tập lệnh sau đọc từng dòng trong $next
. Nhưng khi tôi cố gắng để grep pattern đặc biệt tức là "MO"
trong $next
, sai số được hiển thị trên đầu ra tiêu chuẩn như:grep trong câu lệnh 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
file hình như:
40922|OPR MO 12345|OPR MO 12345|12345|202|local|LMNO
Trên một lưu ý riêng biệt, bạn có thể tránh tất cả các lời gọi của awk bằng cách thay đổi đọc lệnh hơi: 'while IFS =" | " đọc i j k l m n o; do ... '(lưu ý rằng điều này chỉ đặt IFS cho lệnh đọc, vì vậy bạn không phải đặt lại sau). –