"foo", "bar"
입력 파이프라인이 CSV 형식의 단어 목록이라고 상상해 보세요.
"foo"
그런 다음 이 파일 같은 것이 있고 여기에 (1) 또는 "bar"
(2)가 포함되어 있는지 테스트하고 싶습니다. 예를 들면 다음과 같습니다.
echo "foo\nbar" | grep input.txt $0
출력에서 다음 두 가지 grep 작업의 결합된 결과를 얻고 싶습니다.
grep "foo" input.txt
grep "bar" input.txt
예:
input.txt = "foo1\nfoo2n\bar\n123"
output = "foo1\nfoo2n\bar\n"
모든 매개변수를 검색한다면 몇 번이나 실행되는지는 상관하지 않습니다.
답변1
-f
파일에서 읽은 플래그를 파일 이름으로 사용할 수 있으며 /dev/stdin
, 이는 표준 입력을 가리킵니다.
printf '%s\n' "foo" "bar" | grep -f /dev/stdin input.txt
Grep의 일부 구현에서는 하이픈을 사용하여 -
표준 입력을 나타내는 것도 허용합니다.
나는 또한 Echo보다 이식성이 더 좋기 때문에 Printf("foo"와 "bar"를 줄 바꿈으로 구분하여 인쇄함)를 사용했습니다. Bash Echo는 -e
이 플래그를 \n
개행 문자로 해석해야 합니다.