#!/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를 반복적으로 경우는 어떤가요?
조언좀 부탁드립니다.