2016-07-31 11 views
0


in bash in Bash umleiten, wenn wir Datei wir die Katze Befehl
cat file.txt
verwenden lesen wollen, aber wenn wir Leerzeichen nicht verwenden wollen, können wir geben:
{cat,file.txt}
gibt es eine Möglichkeit Ausgabe zu umleiten, ohne dass die Symbole mit> oder < oder &
ich meine, ist es ein Äquivalent zu diesem Befehl:
cat file.txt > /dev/null
und Dank.
Ein anderer Weg Ausgang

+3

Warum würden Sie Leerzeichen kümmern? Ich kann mir keine Situation vorstellen, in der du '{cat, file.txt}' jemals brauchen würdest. – chepner

+1

Was willst du eigentlich erreichen, dass du '>' nicht benutzen kannst (oder willst)? – chepner

Antwort

1

Ich verstehe nicht, warum Sie wollen würde, aber Sie tun können:

eval {cat,input} "$(echo _/dev/null | tr _ '\076')" 
+0

Danke. Das ist, wonach ich gesucht habe. –

3

| T-Stück (Rohr-T genannt) - wird Ausgang (wie>) umleiten, sondern auch auf stdout druckt Datei:

cat file.txt|tee outfile.txt 

| tee -a: ausgegeben anhängen (gleiche Datei wie >>), sondern auch an der stdout druckt:

cat file.txt|tee -a outfile.txt 
+0

... oder '| dd von = outfile.txt'. – Cyrus

+1

Es ist ungenau zu sagen "druckt es auf der Konsole". Es schreibt die Daten sowohl in die benannte Datei als auch in stdout. Das kann ein assoziiertes tty sein, aber es ist sehr oft nicht. (Und es ist mit ziemlicher Sicherheit nicht die Konsole.) Verbinde nicht die Standardausgabe mit einer Tastatur. –

+0

@WilliamPursell danke - Ich habe in der Antwort aktualisiert. –

0

Neben tee können Sie exec verwenden, um den Ausgang

exec 3>&1 # making file descriptor 3 to point to 1 where 1 is stdout 
exec 1>fileout #redirecting 1 ie stdout to a file 
{cat,file} # this goes to fileout & question requirement 
exec 1>&3 # restoring 1 to default 
{cat,38682813.c} # This will be printed at the stdout 
zu umleiten
Verwandte Themen