#!/bin/bash

str=""

str2=""

if [ $# -eq 0 ];

then

    echo "Usage:phone searchfor[...searchfor]"

    echo "(You did'nt tell me what you want to search for)"

    exit 0

else

for var in $@ ;

do

    str="$str$var|" <-or 연산에 사용할 변수 만들기

    str2="$str2.*$var" <-and 연산에 사용할 변수 만들기

done

str=${str::-1}

fi


egrep -i "$str" mydata | awk -f display.awk <-or의 경우를 충족하면 출력

egrep "$str2" mydata | awk -f display.awk <- and 조건 만족하면 충족


or의 경우에는 | 를 통해서 구현할 수 있었는데 and 연산의 경우 별도의 연산자가 안 보이더라구요.

그래서 구글링 해보니 .와 *를 통해 구현할 수 있다길레 해보았는데 이 방식은 입력의 순서가 달라지자 연산이 제대로 되지 않았습니다.


또 어떤 분들은 

egrep 혹은 grep를 여러개의 파이프로 연결하여 거름망으로 거르듯이 and를 구현하라 하시던데

조건이 입력 수의 제한이 없게하는지라 grep를 반복문과 어떻게 일치시킬지를 잘 모르겠습니다. 


정리하자면

1.and 연산을 하는 방식이 궁금합니다.

2.연산자를 사용하는 방식이 있나요? 아니면 없나요? 있다면 어떻게 시도해보면 좋을까요?

3.연사자외의 파이프라인으로 grep나 egrep를 반복적으로 경우는 어떤가요?


조언좀 부탁드립니다.