중간 파일을 사용하지 않고 클립 보드 내용 필터링 문자열을 포함하는 특정 줄을 제거한

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

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

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



답변

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 차 선택을 지정합니다.