사용자 도구

사이트 도구


linux:xargs

xargs

  • 파이프로 넘어온 문자열을 명령행 인자로 바꿔 준다.

많은 파일 삭제

/path 이하의 모든 파일 삭제하기.

 find /path -type f -print0 | xargs -0 rm

파일 내용 검색

'*.java' 파일들 중에서 User라는 문자열이 있는 파일 검색

find . -name "*.java" | xargs grep User

옵션 문자열 대체

옵션이 될 값을 놓을 위치가 명령의 맨 끝이 아닐 때는 특정 문자열을 원하는 옵션 문자열로 대체해야 한다.

jcmd | grep Bootstrap | cut -f1 -d' ' | xargs -I % jcmd % VM.version

-I 대체문자열 에서 대체 문자열이 옵션으로 대체된다. 즉, jcmd 123 VM.version 형태로 명령이 바뀐다.

앞선 명령의 결과가 없으면 실행 안함

  • --no-run-if-empty 옵션을 주면 앞선 명령의 결과가 empty 이면 xargs 뒤의 명령을 실행하지 않는다.

줄 합치기

  • xargs -n NN 줄 단위로 합친다. 구분자는 공백
  • 혹은 paste -d' ' - - - - : - 갯수만큼의 줄단위로 합친다. 성능이 더 좋다고한다.
  • clipboard 에 있는 내용 줄 합치기
#!/bin/sh
# $1 는 합칠 줄 갯수. 기본값 10
JOIN_LINES=$1
 
if [ -z "$JOIN_LINES" ]
then
    JOIN_LINES=10
fi
 
xclip -o -sel clip | xargs -n$JOIN_LINES \
| xclip -i -sel clip

참조

linux/xargs.txt · 마지막으로 수정됨: 2021/08/01 13:19 저자 kwon37xi