파일에서 2개의 문자열을 검색하고 두 문자열을 모두 포함하는 출력 라인

파일에서 2개의 문자열을 검색하고 두 문자열을 모두 포함하는 출력 라인

그래서 명령줄에서 2개의 문자열과 파일 이름을 전달하고 파일에서 이 두 문자열을 검색하고 싶습니다. 입력 예: script.sh file.txt AB 78
출력 예:001,AB,cse,78

(파일에 이 줄과 일치하지 않는 다른 줄이 있는 경우)

내 시도:

`#/usr/bin/env bash`  
`grep '$2.*$3\|$3.*$2' $1`

그러나 이것은 작동하지 않습니다. 누구든지 도와줄 수 있나요?

답변1

$2검색 문자열을 허용 하고 $3확장하려면 작은따옴표를 큰따옴표로 변경해야 합니다 .

#/usr/bin/env bash
grep "$2.*$3\|$3.*$2" $1

더 나은 설명은 다음과 같습니다.

https://stackoverflow.com/questions/6697753/difference- Between-single-and-double-quotes-in-bash#6697781

관련 정보