2016-07-02 7 views
0

Schreiben Shell-Skript Textdatei Daten aus bestimmtem Verzeichnis zu sortieren mit for-Schleife in ubuntu als:Liste aus Textdateien aus bestimmtem Verzeichnis in Unix

echo "Enter directory Name" 
    read dr 
    path= ` find /home/user -name $dr ` 
    for x in ` ls *.txt $path ` 
    do 
     sort $x 
    done 
    echo "------Script finished-------" 

Aber dieses Skript mir Fehler oder eine Nachricht zu geben, wie (auch tho 'Ich habe Textdateien):

Ich denke, es gibt ein Problem mit ls Befehl, ist es syntaktisch falsch oder was? Wie listet man Textdateien aus einem bestimmten Verzeichnispfad auf?

+1

Meinst du nicht nur 'für x in \ 'ls $ path/*. Txt \' 'stattdessen? –

+0

Das war ein Fehler im Skript, ich habe es gelöst. @JeffY –

Antwort

0

Hier ist ein modifiziertes Beispiel. Ich weiß nicht, warum Backticks nicht funktioniert, also habe ich verwendet():

echo "Enter directory Name" 
    read dr 
    path=($(find /home/user -type d -name $dr)) 
    for x in `ls $path/*.txt` 
    do 
     sort $x 
    done 
    echo "------Script finished-------" 
+0

Drei Dinge: 1) Ich möchte Benutzer nur Verzeichnisnamen, nicht Verzeichnispfad eingeben. Beispiel: Es könnte "dir3" sein, wo "/ home/dir1/dir2/dir3". Deshalb habe ich gefunden. 2) Sie möchten eine Aufgabe nur mit der for-Schleife ausführen. 3) Sie möchten Sortierinhalte und nicht Dateinamen ausführen. –

+0

Ich löste es als Jeff erwähnen im Kommentar, und ich denke, Ihr Skript ist auch korrekt. –

Verwandte Themen