![파이프를 통과하는 라인을 어떻게 필터링합니까?](https://linux55.com/image/8437/%ED%8C%8C%EC%9D%B4%ED%94%84%EB%A5%BC%20%ED%86%B5%EA%B3%BC%ED%95%98%EB%8A%94%20%EB%9D%BC%EC%9D%B8%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%84%ED%84%B0%EB%A7%81%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
foo
파일 이름 목록을 출력하는 명령이 있습니다 .
$ foo
file1.a
file2.b
file3.a
bar
.a
파일 이름을 인수로 받아들이고 일부 처리를 수행하는 명령도 있습니다 .
$ bar file1.a file3.a
Great success!
$ bar file2.b
FAILURE
이와 같은 파이프라인을 사용하여 두 가지를 결합하고 싶지만 foo | xargs bar
으로 시작하지 않는 모든 항목을 필터링해야 합니다 .a
. 어떻게 해야 합니까? 이상적으로 foo | filter-lines ".a" | xargs bar
는 파이프라인의 두 명령 사이에 붙여넣을 수 있는 간단한 것을 원합니다.
답변1
를 사용하면 해당 쪽의 모든 파일을 grep
가져올 수 있습니다 .foo
.a
foo | grep "\.a$" | xargs -d'\n' -r bar