반응형
내가 자주 사용하는 형태는 아래와 예제와 같고, 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 |