Frage

Ich bin zu Rohrdaten in „Schnitt“ zu versuchen, sagen wir, schneiden die erste Spalte von Text entfernt. Dies funktioniert

$ cat test.txt | cut -d\  -f2-

von stdin Lesen auch funktioniert:

$ cut -d\  -f2- -
? doc/html/analysis.html
? doc/html/classxytree-members.html
<CTRL+D>

Doch sobald ein Rohr beteiligt ist, ist es nicht meine <CTRL+D> mehr akzeptieren, und ich kann nicht das Signal „Ende der Datei“:

$ cut -d\  -f2- - | xargs echo

Update: Dies ist offenbar ein Fehler in einer alten Version von bash (3.00.15). Es funktioniert in neueren Versionen (zB versucht, 4.0.33 und 3.2.25). Es wäre schön, etwas Abhilfe zu haben, obwohl, da ich nicht einfach aktualisieren kann.


Hintergrund: Ich habe ein Skript / oneliner bekam, die mir eine verkürzte Ausgabe von cvs status gibt (ich weiß, CVS ...) in Form

? filename

z. für eine Datei noch nicht verpflichtet. Ich möchte in der Lage sein, + paste Teile der Ausgabe von diesem Befehl zu kopieren und verwenden diese als eine Eingabe an einen anderen Befehl, die diese Dateien zu cvs hinzufügt. Sprich:

$ cut -d\  -f2- | xargs cvs add
<paste lines>
<CTRL-D>        # <-- doesn't work

Ideen?

War es hilfreich?

Lösung

Sie haben versucht,

$ cat | cut -d\  -f2- | xargs cvs add
<paste lines>
<CTRL-D>        # <-- doesn't work

Andere Tipps

Ihre Beispiele funktionieren gut für mich. Welche Shell verwenden Sie? Welche Dienstprogramme?

Eine Sache, die manchmal stellt Personen ist, dass Strg - D funktioniert nur, wenn es das erste Zeichen in der Zeile ist. Wenn Sie kopieren und einfügen, können Sie manchmal versehentlich Leerzeichen als erstes Zeichen der Zeile haben, oder keine Newline am Ende des eingefügten Blocks, wobei in diesem Fall Strg - D wird nicht funktionieren. Drücken Sie einfach Rückkehr und dann versuchen, Strg -. D wieder und sehen, ob das Ihr Problem behebt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top