GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Den Inhalt einer Datei in die Zwischenablage kopieren, ohne den Inhalt anzuzeigen?

So kopieren Sie den Inhalt einer Datei in UNIX, ohne den Dateiinhalt anzuzeigen. Ich möchte nicht cat oder vi, um den Inhalt zu sehen.

Ich möchte sie in die Zwischenablage kopieren, damit ich sie wieder in meinen Windows-Notizblock einfügen kann.

Ich kann die Datei aufgrund von Zugriffsbeschränkungen nicht von diesem Server auf einen anderen kopieren.

Akzeptierte Antwort:

X11

Bei Verwendung von X11 (der gebräuchlichsten GUI auf traditionellen Unix- oder Linux-basierten Systemen), um den Inhalt einer Datei in die X11-CLIPBOARD-Auswahl zu kopieren, ohne anzeigen dafür können Sie den xclip verwenden oder xsel Dienstprogramm.

xclip -sel c < file

Oder:

xsel -b < file

um den Inhalt von file zu speichern als CLIPBOARD X11-Auswahl.

So speichern Sie die Ausgabe eines Befehls:

mycommand | xclip -sel c
mycommand | xsel -b

Beachten Sie, dass es mit einer UTF-8-Codierung gespeichert werden sollte, da das Einfügen sonst nicht richtig funktioniert. Wenn die file mit einem anderen Zeichensatz codiert ist, sollten Sie zuerst in UTF-8 konvertieren, wie:

<file iconv -f latin1 -t utf8 | xclip -sel c

für eine in latin1 kodierte Datei /iso8859-1 .

xsel funktioniert nicht mit binären Daten (es akzeptiert keine Nullbytes), aber xclip tut.

Um es als CUT_BUFFER zu speichern (diese werden immer noch von einigen Anwendungen wie xterm abgefragt wenn nichts die CLIPBOARD- oder PRIMARY X-Auswahl beansprucht und kein Prozess laufen muss, um sie wie für Auswahlen bereitzustellen), obwohl Sie das heutzutage wahrscheinlich nicht mehr verwenden wollen oder müssen:

xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"

(entfernt die abschließenden Newline-Zeichen aus file ).

GNU-Bildschirm

GNU screen hat den readbuf Befehl, den Inhalt einer Datei in ihren eigenen Kopier-Einfüge-Puffer zu schlürfen (den Sie mit ^A] einfügen ). Also:

screen -X readbuf file

Apple OS/X

Obwohl Apple OS/X das kann Verwenden Sie X11. Dies ist standardmäßig nicht der Fall, es sei denn, Sie führen eine X11-Anwendung aus. Sie könnten xclip verwenden oder xsel da OS/X die X11 CLIPBOARD-Auswahl mit OS/X-Pasteboard-Puffer synchronisieren sollte, aber es wäre ein bisschen verschwendet, den X11-Server nur dafür zu starten.

Unter OS/X können Sie den pbcopy verwenden Befehl zum Speichern beliebiger Inhalte in Pasteboard Puffer:

pbcopy < file

(Es wird erwartet, dass die Zeichencodierung der Datei der des Gebietsschemas entspricht). So speichern Sie die Ausgabe eines Befehls:

mycommand | pbcopy

Schalen

Die meisten Shells haben ihre eigenen Puffer zum Kopieren und Einfügen. Im Emacs-Modus speichern Ausschneide- und Kopieroperationen den kopierten/ausgeschnittenen Text auf einem Stapel, den Sie mit Strg-Y ziehen/einfügen , und durchlaufen Sie sie mit Alt+Y

Verwandte:Nehmen Sie die erste Spalte aus 2 Dateien und schreiben Sie sie in eine 3. Datei?

zsh CUTBUFFER/killring

In zsh , wird der Stack im $killring gespeichert -Array und die Spitze des Stacks im $CUTBUFFER Variable, obwohl diese Variablen nur von Zsh Line Editor (zle)-Widgets verfügbar sind und einige spezialisierte Widgets die bevorzugte Art sind, diese zu manipulieren.

Da diese nur über das ZLE verfügbar sind, ist es etwas kompliziert, dies mit Befehlen zu tun:

zmodload zsh/mapfile
zle-line-init() {
  if [ -n "$FILE_TO_COPY" ]; then
    zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
    unset FILE_TO_COPY
  fi
}
mycommand | pbcopy
mycommand | pbcopy
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A       

Die zle-line-init Spezial-Widget wird einmal zu Beginn jeder neuen Eingabeaufforderung ausgeführt. Das bedeutet, dass die Datei erst bei der nächsten Eingabeaufforderung kopiert wird. Wenn Sie beispielsweise Folgendes tun:

file-copy file; sleep 2

Die Datei wird erst nach diesen 2 Sekunden kopiert.


Linux
  1. Ein kleiner SSH-Dateikopierzauber auf der Kommandozeile

  2. Wie speichere ich die Ausgabe von SHOW PROCESSLIST in einer Datei in MySQL?

  3. Grep Word in einer Datei und dann die Datei kopieren?

  4. Effizienteste Methode, um den Inhalt einer Datei zu leeren?

  5. Wie listet man die N-te jüngste Datei auf (ohne Ls zu analysieren!)?

So bearbeiten Sie eine Datei, ohne ihre Zeitstempel in Linux zu ändern

Kopieren Sie Dateiinhalte in die Zwischenablage, ohne sie anzuzeigen

So zeigen Sie den Inhalt eines Archivs oder einer komprimierten Datei unter Linux an

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

Kopieren Sie den Dateiinhalt in die Zwischenablage im Linux-Terminal

Wie kann ich die Ausgabe eines Remote-Befehls in die lokale Zwischenablage kopieren?