http://kiros33.blog.me/130140792483
Revision History
2015/05/17 23:47:22 - 문서 포맷 변경
2015/11/22 12:30:17 - 디렉토리 이름을 파일명 앞에 추가하는 방법
>>>>> 전달값 처리 한번에
$ svn status --no-ignore | egrep "^[I?]" | cut -c9- | xargs echo rm
rm lib lte_rrc/tools/advlogger/src/bin lte_rrc/tools/advlogger/src/include lte_rrc/tools/advlogger/src/lib lte_rrc/rrc/asn/lib/libasn1rt.a lte_rrc/rrc/asn/lib/libasn1per.a lte_rrc/sctp/sctp/algos/arAdler/obj lte_rrc/sctp/sctp/algos/arCRC/obj lte_rrc/sctp/sctp/algos/Crypto/algo/md5/obj mac/maccore/bin/scheduler/DRXManager mac/maccore/bin/scheduler/MeasGapHandler simulators/protocolSimulatorTool/build/i686-debug simulators/protocolSimulatorTool/bin/.mark
rm lib lte_rrc/tools/advlogger/src/bin lte_rrc/tools/advlogger/src/include lte_rrc/tools/advlogger/src/lib lte_rrc/rrc/asn/lib/libasn1rt.a lte_rrc/rrc/asn/lib/libasn1per.a lte_rrc/sctp/sctp/algos/arAdler/obj lte_rrc/sctp/sctp/algos/arCRC/obj lte_rrc/sctp/sctp/algos/Crypto/algo/md5/obj mac/maccore/bin/scheduler/DRXManager mac/maccore/bin/scheduler/MeasGapHandler simulators/protocolSimulatorTool/build/i686-debug simulators/protocolSimulatorTool/bin/.mark
>>>>> 전달값 처리 각각
-n num : max-args
-l num : max-lines
$ svn status --no-ignore | egrep "^[I?]" | cut -c9- | xargs -n1 echo rm
rm lib
rm lte_rrc/rrc/asn/lib/libasn1rt.a
rm lte_rrc/rrc/asn/lib/libasn1per.a
rm lte_rrc/sctp/sctp/algos/arAdler/obj
rm lte_rrc/sctp/sctp/algos/arCRC/obj
rm lte_rrc/sctp/sctp/algos/Crypto/algo/md5/obj
rm lte_rrc/tools/advlogger/src/lib
rm lte_rrc/tools/advlogger/src/bin
rm lte_rrc/tools/advlogger/src/include
rm mac/maccore/bin/scheduler/DRXManager
rm mac/maccore/bin/scheduler/MeasGapHandler
rm simulators/protocolSimulatorTool/bin/.mark
rm simulators/protocolSimulatorTool/build/i686-debug
rm lib
rm lte_rrc/rrc/asn/lib/libasn1rt.a
rm lte_rrc/rrc/asn/lib/libasn1per.a
rm lte_rrc/sctp/sctp/algos/arAdler/obj
rm lte_rrc/sctp/sctp/algos/arCRC/obj
rm lte_rrc/sctp/sctp/algos/Crypto/algo/md5/obj
rm lte_rrc/tools/advlogger/src/lib
rm lte_rrc/tools/advlogger/src/bin
rm lte_rrc/tools/advlogger/src/include
rm mac/maccore/bin/scheduler/DRXManager
rm mac/maccore/bin/scheduler/MeasGapHandler
rm simulators/protocolSimulatorTool/bin/.mark
rm simulators/protocolSimulatorTool/build/i686-debug
>>>>> replace를 사용해 전달값 위치 변경
$ svn status --no-ignore | egrep "^[I?]" | cut -c9- | xargs -I {} echo rm {} -rf
rm lib -rf
rm lte_rrc/tools/advlogger/src/include -rf
rm lte_rrc/tools/advlogger/src/lib -rf
rm lte_rrc/tools/advlogger/src/bin -rf
rm lte_rrc/rrc/asn/lib/libasn1rt.a -rf
rm lte_rrc/rrc/asn/lib/libasn1per.a -rf
rm lte_rrc/sctp/sctp/algos/arAdler/obj -rf
rm lte_rrc/sctp/sctp/algos/arCRC/obj -rf
rm lte_rrc/sctp/sctp/algos/Crypto/algo/md5/obj -rf
rm mac/maccore/bin/scheduler/DRXManager -rf
rm mac/maccore/bin/scheduler/MeasGapHandler -rf
rm simulators/protocolSimulatorTool/build/i686-debug -rf
rm simulators/protocolSimulatorTool/bin/.mark -rf
rm lib -rf
rm lte_rrc/tools/advlogger/src/include -rf
rm lte_rrc/tools/advlogger/src/lib -rf
rm lte_rrc/tools/advlogger/src/bin -rf
rm lte_rrc/rrc/asn/lib/libasn1rt.a -rf
rm lte_rrc/rrc/asn/lib/libasn1per.a -rf
rm lte_rrc/sctp/sctp/algos/arAdler/obj -rf
rm lte_rrc/sctp/sctp/algos/arCRC/obj -rf
rm lte_rrc/sctp/sctp/algos/Crypto/algo/md5/obj -rf
rm mac/maccore/bin/scheduler/DRXManager -rf
rm mac/maccore/bin/scheduler/MeasGapHandler -rf
rm simulators/protocolSimulatorTool/build/i686-debug -rf
rm simulators/protocolSimulatorTool/bin/.mark -rf
>>>>> multiple commands
동시에 여러개의 명령을 처리할 수 있도록 세미콜론(;)으로 구분해서 명령 지정
$ xargs -I{} sh -c '{ echo command1 {} ; echo command2 {} ; }'
>>>>> handling variable
$ ls -1 | xargs -I{} echo $(export var='{}'; printf "%s" "$var "; echo grep -c "'$var'" tags;)
>>>>> 디렉토리 이름을 파일명 앞에 추가하는 방법
파일명과 디렉토리명에 공백이 있는 경우에도 정상 동작하도록 되어있습니다.
bash의 "파일이름에서 이름과 확장자를 분리하는 방법" 과 "아포스트로피(apostrophe)(') 중복 사용" 참고
$ ls -1 *.jpg | xargs -I{} bash -c 'mv "${0}" "$(basename "$PWD")-$(basename "${0}" .jpg).jpg"' {}
검색 : Linux, 리눅스, xargs, Command, 명령, Example, 예 예제, Sample, 샘플, Usage, 용법, 사용법,
댓글 없음:
댓글 쓰기