
Ich verwende Gentoo Linux. Ein Programm ( equery
) gibt eine umfangreiche Liste aller aktuell installierten Pakete aus ( equery list "*"
). Ich möchte herausfinden, welche davon instabil sind. Equery kennzeichnet die instabilen Pakete mit [ ~] vor dem Paketnamen. Das Problem ist, dass dies nur dann passiert, wenn die Ausgabe nirgendwohin umgeleitet wird – im Terminal. Wenn ich versuche, die Ausgabe zu greppen ( equery list "*" | grep "~"
) oder in eine Datei umzuleiten, einschließlich stderr ( equery list "*" &> eql.txt
), werden diese Informationen nicht umgeleitet – nur die Namen der Pakete.
Also, wie leite ich die GESAMTE Ausgabe eines Programms um?
Antwort1
Versuchen Sie, Ihren equery-Befehl mitPufferung aufheben.
unbuffer equery list "*" | grep "-"
Der Befehl „unbuffer“ lässt sein Argumentprogramm glauben, dass es mit einem Terminal verbunden ist. Möglicherweise müssen Sie dem Argument eine weitere Anführungszeichenebene hinzufügen "*"
.
Antwort2
equery -N
schaltet die Rohrerkennung aus.
Sollte also equery -N list '*' | grep '~'
funktionieren.