Ich versuche, ein Skript zu erstellen, das eine Erweiterung erhält und in zwei Spalten den Benutzer und die Anzahl der Dateien, die der Benutzer mit dieser Erweiterung besitzt, meldet. Die Ergebnisse müssen in report.txt gedruckt werdenBerichterstattung mit Schnitt und Grep
Hier ist mein Code.
#!/bin/bash
#Uncoment to create /tmp/test/ with 50 txt files
#mkdir /tmp/test/
#touch /tmp/test/arch{01..50}.txt
clear
usage(){
echo "The script needs an extension to search"
echo "$0 <extension>"
}
if [ $# -eq 0 ]; then
usage
exit 1
fi
folder="/tmp/test/"
touch report.txt
count=0
pushd $folder
for file in $(ls -l); do
grep "*.$1" | cut -d " " -f3 >> report.txt
done
popd
Das Programm läuft einfach endlos. Und ich zähle nicht einmal die Dateien für jeden Benutzer. Wie kann ich das nur mit Grep und Cut lösen?
Können Sie einen Eingang und erwartete Ausgabe geben? – Fazlin
'grep" *. $ 1 "| ... greps ins stdin. Dort wartet dein Programm für immer. Ich habe kein Dateiargument oder es fehlt eine Eingabe-Pipe. –
Sie könnten die for-Schleife durch etwas wie 'find $ Ordner-Name" *. $ 1 "-printf"% P \ t% u \ n ">> report.txt' und dann etwas wc ersetzen. –