반응형
내가 자주 사용하는 형태는 아래와 예제와 같고, find 명령에 대한 자세한 내용은 아래 Web Docs를 참고할 것 !!!
$ find /proc -maxdepth 2 -name "comm" -print
$ find /proc -maxdepth 2 -name "comm" -exec cat {} \;
$ find . -maxdepth 2 -name "comm" -type f -mmin +1 -print | xargs grep kubelet
./4305/comm:kubelet
$
find 명령과 xargs 명령을 조합해서 사용하려면 많은 내용을 길게 입력해야 하는데, 아래와 같이 미리 .bashrc 파일에 function으로 등록하면 쉽게 이용할 수 있다.
$ cat .bashrc
... 중간 생략 ...
##
## .c 또는 .h 파일에서 특정 문자열을 찾는 함수
##
function find_xargs() {
find . -name "*\.[ch]" -type f -print | xargs grep $1
}
... 중간 생략 ...
##
## 위에서 .bashrc 파일에 추가한 내용을 현재 shell 환경에 적용하기
##
$ . .bashrc
## --------------------------------------------------------------
##
## 위에서 작성한 find_xargs 명령을 이용하여 Source code file에서 ip_hdr 함수를 찾는 예제
##
$ find_xargs ip_hdr
./net/dccp/ipv6.c: newnp->mcast_hops = ip_hdr(skb)->ttl;
./net/dccp/ipv4.c: return secure_dccp_sequence_number(ip_hdr(skb)->daddr,
./net/dccp/ipv4.c: ip_hdr(skb)->saddr,
./net/dccp/ipv4.c: newinet->mc_ttl = ip_hdr(skb)->ttl;
./net/dccp/ipv4.c: const struct iphdr *iph = ip_hdr(skb);
./net/dccp/ipv4.c: rxiph = ip_hdr(rxskb);
./net/dccp/ipv4.c: sk_rcv_saddr_set(req_to_sk(req), ip_hdr(skb)->daddr);
./net/dccp/ipv4.c: sk_daddr_set(req_to_sk(req), ip_hdr(skb)->saddr);
./net/dccp/ipv4.c: iph = ip_hdr(skb);
./net/sched/act_ipt.c: iph = ip_hdr(skb);
./net/sched/act_ctinfo.c: dscp = ipv4_get_dsfield(ip_hdr(skb)) & ~INET_ECN_MASK;
./net/sched/act_ctinfo.c: ipv4_change_dsfield(ip_hdr(skb),
./net/sched/act_nat.c: iph = ip_hdr(skb);
./net/sched/act_nat.c: iph = ip_hdr(skb);
./net/sched/act_ct.c: iph = ip_hdr(skb);
... 중간 생략 ...
$
아래 Web docs에 아주 자세한 설명과 예제가 있다.
How to Use the Linux xargs Command
'Shell Script' 카테고리의 다른 글
IO 성능(부하) 테스트를 위한 Shell Script (0) | 2024.08.14 |
---|---|
Bash Shell 기본 정리, 요약, 스크립트 예제 (Script example) (0) | 2023.02.15 |
카운트 다운 쉘 스크립트 (bash shell script - count down) (0) | 2022.07.05 |
sed 사용법 - 종합 (0) | 2022.06.16 |
문자열에서 따옴표 떼어내기(제거하기) (0) | 2022.01.22 |