사용자 도구

사이트 도구


linux:xargs

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linux:xargs [2016/07/28 16:46]
kwon37xi
linux:xargs [2026/01/09 10:11] (현재)
kwon37xi [옵션 문자열 대체]
줄 22: 줄 22:
 </code> </code>
 ''-I 대체문자열'' 에서 대체 문자열이 옵션으로 대체된다. 즉, ''jcmd 123 VM.version'' 형태로 명령이 바뀐다. ''-I 대체문자열'' 에서 대체 문자열이 옵션으로 대체된다. 즉, ''jcmd 123 VM.version'' 형태로 명령이 바뀐다.
 +
 +===== cat 결과 즉시 실행 =====
 +  * ''cat'' 명령 등으로 터미널에 출력되는 내용을 즉각 [[linux:bash|Bash]] shell 에서 명령으로 실행하기
 +
 +<code sh>
 +# xargs -I 사용
 +cat commands.txt | grep -I "어떤 내용" | xargs -I {} sh -c "{}"
 +
 +# bash pipe
 +cat commands.txt | grep -I "어떤 내용" | bash
 +
 +# $() 사용
 +$(cat script.sh)
 +</code>
 +
 +===== 앞선 명령의 결과가 없으면 실행 안함 =====
 +  * ''%%--%%no-run-if-empty'' 옵션을 주면 앞선 명령의 결과가 empty 이면 xargs 뒤의 명령을 실행하지 않는다.
 +
 +===== 줄 합치기 =====
 +  * ''xargs -n N'' 는 ''N'' 줄 단위로 합친다. 구분자는 공백
 +  * https://stackoverflow.com/a/25973154/1051402
 +  * 혹은 ''paste -d' ' - - - -'' : ''-'' 갯수만큼의 줄단위로 합친다. 성능이 더 좋다고한다.
 +  * clipboard 에 있는 내용 줄 합치기
 +
 +<code sh>
 +#!/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
 +</code>
 +
 +===== 참조 =====
 +  * [[https://www.youtube.com/watch?v=5EFY5ztZb00|HOW TO USE Xargs!!! | Linux Core Utils - YouTube]]
linux/xargs.1469693804.txt.gz · 마지막으로 수정됨: 2016/07/28 16:46 저자 kwon37xi