Gibt es ein idiomatisches Analog zu Rubys für Unix-Befehlspipelines?Idiomatisches Analog zu Rubys "Objekt # tap" für den Unix-Befehl Pipelines?
Anwendungsfall: Innerhalb einer Pipeline möchte ich einen Befehl für seine Nebeneffekte ausführen, aber die Eingabe implizit zurückgeben, um die Verkettung der Pipeline nicht zu unterbrechen. Zum Beispiel:
echo { 1, 2, 3 } |
tr ' ' '\n' |
sort |
tap 'xargs echo' | # arbitrary code, but implicitly return the input
uniq
Ich komme von Ruby, wo ich dies tun würde:
[ 1, 2, 3 ].
sort.
tap { |x| puts x }.
uniq
+1 für 'Prozesssubstitution'. Es besteht die Notwendigkeit für die meisten der/tmp-Dateien, die ich je benutzt habe. –
Und falls Sie nur nach 'stderr',' ... | anzeigen möchten tee/dev/stderr | ... '. – Vic