예를 들어 저는 xdotool
데스크탑에서 창 목록을 가져오곤 했으며, 한 줄에 하나씩 숫자 목록을 출력했습니다.
예제 명령은 xdotool search --name "a_program"
제목에 해당 문자열이 포함된 모든 창을 나열하는 입니다.a_program
샘플 출력은 다음과 같습니다.
50853718
50853807
50859414
숫자에서 창 제목을 가져오는 명령의 예는 입니다 xdotool getwindowname 50854718
.
xargs
각 줄의 출력을 변환하는 명령을 어떻게 구성합니까 xdotool getwindowname outputnumber
?
질문은 주로 에 관한 것이지만 xargs
어떤 의견이라도 환영합니다.xdotool
답변1
> echo "50853718
50853807
50859414" | xargs -n 1 echo xdotool getwindowname
xdotool getwindowname 50853718
xdotool getwindowname 50853807
xdotool getwindowname 50859414
그것이 필요한 것이라면 삭제하십시오 echo
.
xdotool search --name "a_program" | xargs -n 1 echo xdotool getwindowname
답변2
xargs
완벽을 기하기 위해: Bash나 호환되는 셸을 사용하는 경우에도 이 작업을 수행할 필요가 없습니다. (어떤 다른 쉘이 이 구문을 허용하는지 잘 모르겠지만 몇 가지 일반적인 쉘이 허용한다고 생각합니다.) 이것의 장점은 별도의 프로그램(예: xargs
)을 호출하지 않는다는 점이지만 실제로는 눈에 띄지 않을 것입니다. .
for winid in $(xdotool search --name "a_program"); do
xdotool windowname $winid;
done
간격은 중요하지 않으므로 모든 내용을 한 줄에 넣을 수 있습니다. 그러나 이는 반환된 개별 창 ID에 xdotool search
공백이 포함되어 있지 않다는 사실에 의존합니다 .