![파일에서 2개의 문자열을 검색하고 두 문자열을 모두 포함하는 출력 라인](https://linux55.com/image/103213/%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%202%EA%B0%9C%EC%9D%98%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EA%B2%80%EC%83%89%ED%95%98%EA%B3%A0%20%EB%91%90%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EB%AA%A8%EB%91%90%20%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94%20%EC%B6%9C%EB%A0%A5%20%EB%9D%BC%EC%9D%B8.png)
그래서 명령줄에서 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
더 나은 설명은 다음과 같습니다.