/ / Bash Shell Scripting read file zeilenweise [closed] - Linux, Bash, Shell, Unix

Bash Shell Scripting Datei zeilenweise lesen [closed] - linux, bash, shell, unix

Ich habe einen Auftrag fällig und brauche Hilfe !! Die Zuweisung lautet: "Schreiben Sie ein Skript, das einen Dateinamen als einzelnes Befehlszeilenargument verwendet. Es sollte überprüft werden, dass die Datei eine Datei ist (kein Verzeichnis oder symbolischer Link usw.) und dass sie lesbar ist Durchlaufen und zählen Sie die Anzahl der Zeilen und die Anzahl der Wörter in jeder Zeile. Sie sollte die Gesamtzahl der Zeilen und Wörter widerspiegeln und Leerzeilen identifizieren und zählen.

Ab sofort habe ich:

enter code here
#!/bin/bash
exec 10<&0
exec<$1
file="example1.txt"
let count=0
while read LINE
do
((count++))
echo $LINE > $file
done
echo "Number of lines: $count"
echo "The last line of the file is: `cat ${file}`"
exec 0<&10 10<&-

Antworten:

1 für die Antwort № 1

Machen Sie von einer Bash-Eingabeaufforderung aus help test - Hier erfahren Sie, wie Sie feststellen können, ob eine Datei ein Verzeichnis oder ein Symlink ist.

Sie möchten die Parameter überschreiben, die Sie Ihrem Skript übergeben haben: Verwenden Sie a for Schleife und die Parameter sind "$@"

Sie möchten die Datei in die while-Schleife umleiten, so dass Sie über die Zeilen iterieren können: while read ...; done < filename

Machen help read um zu lernen, wie man die Wörter in ein Array einliest, so kann man sie leicht zählen.

Verwenden exec Das Umleiten von Dateideskriptoren ist eine ziemlich fortgeschrittene Technik, die ich für diese Situation nicht empfehlen würde.