중간 파일을 사용하지 않고 클립 보드 내용 필터링


11

클립 보드에있는 텍스트를 수정하고 문자열을 포함하는 특정 줄을 제거한 다음 추가 조작을 위해 출력을 얻습니다 (필요한 경우에만 클립 보드에 대처하는 것을 선호합니다). 나는 이런 식으로 생각하고 있었다 :

cat > swapfile
##Paste all
grep -v string swapfile
## Read all
rm swapfile

파일 생성을 막고 쉘 stdin / out 자체의 모든 것을 수행하려고합니다. 입력에서 파이프, 리디렉션, grep / sed를 사용해 보았지만 원하지 않는 패턴없이 입력을 인쇄하지 못했습니다.

답변:


13
xsel -o -p  | grep -v string

위의 내용은 xsel 유틸리티를 사용하여 클립 보드에서 캡처하고 현재 기본 선택 항목을 표준 출력으로 보냅니다. 그런 다음 원하는대로 grep (또는 sed 또는 awk)을 사용하여 출력을 수정할 수 있습니다.

기본 선택을 원하지 않으면 "-p"를 보조 선택의 경우 "-s"로 바꾸거나 클립 보드 선택의 경우 "-c"로 바꾸십시오.

데비안 또는 이와 유사한 배포판에서 xsel을 사용하여 얻을 수 있습니다 apt-get install xsel.

위의 내용은 stdout으로 출력을 보냅니다. 출력을 선택 항목으로 직접 다시 캡처하려면 다음을 사용하십시오.

xsel -o -p  | grep -v string | xsel -i -s

"-i"옵션은 xsel에게 stdin으로부터 입력을 받아 선택에 저장하도록 지시합니다. "-s"는 다시 2 차 선택을 지정합니다.


나는 이것을 항상 사용합니다. 잘 작동해야합니다. 사본이 "너무 크지"않은지 확인하거나 예기치 않은 출력을 얻을 수 있습니다. 이것은 일반적으로 복사하여 붙여 넣는 모든 것에 적합합니다.
coteyr

macos 용 기본 애플리케이션이 아님
lobi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.