xargs <실행하고 싶은 명령어>: 표준 입력으로 전달받은 리스트를 인자로 실행
# find 명령으로 출력된 파일 리스트에 대해 ls -l을 실행
$ find . -type f -name '*.txt' | xargs ls -l
# 현재 디렉터리 아래의 모든 파일에 대해 grep을 실행
$ find . -type f | xargs grep ldk
findgrep.sh
#!/bin/bash
pattern=$1
directory=$2
name=$3
# 두 번째 인자가 빈 문자열이면 기본값으로 현재 디렉터리를 설정
if [ -z "$directory" ]; then
directory='.'
fi
# 세 번째 인자가 빈 문자열이면 기본값으로 '*' 설정
if [ -z "$name" ]; then
name='*'
fi
$ find"$directory" -type f -name "$name" | xargs grep -nH "$pattern"
- 검색 패턴을 인자로 지정하여 현재 디렉터리 아래의 모든 파일에서 검색
- 검색하고 싶은 문자열이 어떤 파일에 있을지 모를 때 편리
- grep -nH 옵션: 검색된 행 번호 출력
'books > Linux' 카테고리의 다른 글
[모두의 리눅스] 파일과 디렉터리 (0) | 2024.08.21 |
---|---|
[모두의 리눅스] 소프트웨어 패키지 (0) | 2024.08.21 |
[모두의 리눅스] 셸 스크립트 (3) IFS (0) | 2024.08.09 |
[모두의 리눅스] 셸 스크립트 (1) (0) | 2024.08.08 |
[모두의 리눅스] 표준 입출력과 파이프라인 (0) | 2024.07.31 |