Ich versuche, die Anzahl der Zeilen in einer .list-Datei zu lesen, aber die .list-Datei befindet sich tief in einem Ordner. Meine Codes lauten wie oben:
#!/bin/sh
echo -e "Enter file location: \c"
read filename
filepath=/filebig/filemedium/filesmall/data.list
filefinalpath=$filename + $filepath
cd $filefinalpath
if [ -e "$filefinalpath" ]
then
total=$(grep -c "#" -c -v $filefinalpath)
echo -e "There are $total lines"
else
echo $filefinalpath not found
fi
meine Codes sind definitiv falsch, aber meine Idee ist, sagen wir, ein Benutzer gibt den vorderen Teil ein, er wird an die $fileaddpath
CD in den endgültigen Ordner angehängt. Beispielsweise gibt der Benutzer ein project/user123/folder1
. Dies wird dann kombiniert mit filepath=/filebig/filemedium/filesmall/data.list
Um eine endgültige Ausgabe von zu erhalten
CDproject/user123/folder1/filebig/filemedium/filesmall/data.list
Antwort1
Sie sollten die Zeile ändern:
filefinalpath=$filename + $filepath
zu sein
filefinalpath="${filename}${filepath}"
Antwort2
Mehrere Probleme:
1) cd
steht für „change directory“ (Verzeichnis ändern) und erlaubt nur das Verschieben in ein Verzeichnis, schlägt aber bei einer Datei fehl.
OK:
cd /path/to/directory
FEHLER:
cd /path/to/directory/file.list
2) Kombinieren von Zeichenfolgen
stringA=foo
stringB=bar
newstring="$oldstring""$newstring"
3) Linien zählen
Ich empfehle dringend, wc
hierfür Folgendes zu verwenden:
wc -l file
gibt die Anzahl der Zeilen zurück.