文件夹中有一个名为pro1的程序和一个名为file1的数据文件。
在数据文件中,
Alex|New york karlos|011-1234-5678
Karl|Chicago koroq|012-3456-7890
Richard|New york ntown|023-4567-8990
我想使用grep AND。
我写下这段代码,但它无法正常工作
for arg in $@; do
if[ count -eq 1]
then
egrep -i $arg file1 | $temp
else
egrep -i $arg $temp | $temp
fi
done
echo $ temp
当我输入“./pro1 Alex New york”时 我想打印Alex |纽约卡尔罗斯| 011-1234-5678
我该怎么做?
答案 0 :(得分:1)
档案'mgrep':
#!/bin/bash
TEMP=/tmp/mgrep-$$
touch $TEMP
COUNTER=0
for arg in $@; do
let COUNTER=COUNTER+1
if [ $COUNTER -eq 1 ]; then
grep -i "$arg" > $TEMP
else
TEMP2=/tmp/mgrep-$$-$COUNTER
grep -i "$arg" $TEMP > $TEMP2
rm $TEMP
TEMP=$TEMP2
fi
done
cat $TEMP
rm $TEMP
像这样运行:
cat file1 | mgrep one two three