편집하고 명령으로 실행하려는 문자열을 출력하는 스크립트가 있습니다.
예를 들어, 나는
cat ... | xsel -p
그런 다음 "xsel -op"의 출력을 편집하고 편집된 문자열을 새 명령으로 실행하려고 합니다.
그래서 나는 노력하고 있습니다 :
cat ... | xsel -p
$(xsel -op) TAB
하지만 당연히 실패했습니다.
xsel -op
그렇다면 (이 경우) 내용을 명령줄에 출력하고 새 명령을 편집한 다음 해당 명령을 실행하려면 어떻게 해야 합니까 ?
감사해요
답변1
답변2
다음을 수행하여 기록에 추가할 수 있습니다(적어도 bash에서는, zsh에서는 잘 모르겠습니다).
history -s $(xsel -op)
그런 다음 검색하여 편집하세요.
그 이후로 나는 발견했다.
print -s $(xsel -op)
zsh에서도 유효합니다.
답변3
기록에 수동으로 추가할 필요 없이 bash shell-expand-line
키( M-C-e)를 누르기만 하면 됩니다.
shell-expand-line (M-C-e)
Expand the line as the shell does. This performs alias and his‐
tory expansion as well as all of the shell word expansions. See
HISTORY EXPANSION below for a description of history expansion.
답변4
나는 당신이 무엇을 원하는지 완전히 확신하지 못하지만 다음과 같이 작동해야 합니다.
`xsel -op | sed 'do something'`
백틱을 사용하면 BASH가 실행됩니다. 이 경우 방금 sed로 편집한 X의 기본 선택 버퍼에 저장된 모든 항목이 실행됩니다. 예를 들어:
echo "find . -name foo" | xsel -p
`xsel -op | sed 's/foo/bar/`
위 명령을 find
실행하면 "bar"라는 파일이나 폴더에 대한 검색이 실행됩니다.