2016-10-31 2 views
1

Ich mache gerade ein Shell-Programm und ich möchte die Gesamtmenge von Bytes in einer bestimmten Datei mit dem Pipe-Befehl anzeigen. Ich weiß, dass der Pipe-Befehl nimmt, was auch immer auf der linken Seite ist und gibt es als Eingabe rechts. (Angenommen, Sie befinden sich in dem Verzeichnis, in dem sich die Datei befindet)Wie verwende ich den Befehl pipe, um Attribute in einer Datei anzuzeigen?

Ich weiß, dass der Befehl (wc -c) die Anzahl der Bytes in einer Datei anzeigt, aber ich bin mir nicht sicher, wie es weitergeleitet werden soll. Was habe ich versucht war:

ls fileName.sh | wc -c 

Antwort

1

wc den Dateinamen als Argument , nicht als Eingang nimmt. Versuchen Sie folgendes:

wc -c fileName.sh 

Das wc Programm benötigt mehrere Argumente. Sie können dies tun es im aktuellen Arbeitsverzeichnis auf alle Einträge anwenden:

wc -c $(ls) 

Ein weiterer Ansatz ist xargs verwenden Eingang Argumente zu konvertieren:

ls | xargs wc -c 

Sie müssen möglicherweise eine komplexere verwenden Zeile, wenn Sie Leerzeichen in Ihren Dateinamen haben. ls ausgeben kann eine einzelne Datei pro Zeile, und xargs kann gesagt werden, nur auf \n aufzuspalten:

ls -1 | xargs -d '\n' wc -c 

Wenn Sie es vorziehen find statt ls (ein leistungsfähigeres Werkzeug), die -print0 Option für find Stücke zu verwenden, entlang mit der -0 Option zu xargs.

Verwandte Themen