Kann mir jemand erklären, warum, wenn ich die Variable $ file_name im folgenden Skript drucke, zeigt es den Speicherort und nicht nur den Dateinamen? Es ist nicht unbedingt eine schlechte Sache, weil ich versuche, den Speicherort, die md5sum und den Dateinamen getrennt zu drucken, aber ich bin an dieser Stelle verwirrt, warum das den Standort druckt.while loop read Befehl druckt den Speicherort und nicht nur den Dateinamen - warum ist das so?
hier ist die Textdatei:
day19-pgm-am_0946-23_p1_13.mov
day19-pgm-am_0951-23_p1_14.mov
day19-pgm-am_1016-23_p1_19.mov
day19-pgm-am_1021-23_p1_20.mov
day19-pgm-am_1111-23_p1_30.mov
.
#!/bin/bash
file=/location/md5sum.txt
while IFS=, read -ra arr; do
while IFS= read -r -d '' file_name; do
md5=($(md5sum "$file_name"))
printf '%s\n' "$file_name $md5"
done < <(find . -name "${arr[0]}" -print0)
done<"$file"
hier ist die aktuelle Ausgabe, wie Sie die Daten zeigen die Dateien releative Standort sehen:
./level1/level2/day19-pgm-am_0946-23_p1_13.mov d41d8cd98f00b204e9800998ecf8427e
./level1/day19-pgm-am_0946-23_p1_13.mov d41d8cd98f00b204e9800998ecf8427e
./level1/level2/day19-pgm-am_0951-23_p1_14.mov d41d8cd98f00b204e9800998ecf8427e
./level1/day19-pgm-am_0951-23_p1_14.mov d41d8cd98f00b204e9800998ecf8427e
./level1/level2/day19-pgm-am_1016-23_p1_19.mov d41d8cd98f00b204e9800998ecf8427e
./level1/day19-pgm-am_1016-23_p1_19.mov d41d8cd98f00b204e9800998ecf8427e
./level1/level2/day19-pgm-am_1021-23_p1_20.mov d41d8cd98f00b204e9800998ecf8427e
./level1/day19-pgm-am_1021-23_p1_20.mov d41d8cd98f00b204e9800998ecf8427e
./level1/level2/day19-pgm-am_1111-23_p1_30.mov d41d8cd98f00b204e9800998ecf8427e
./level1/day19-pgm-am_1111-23_p1_30.mov d41d8cd98f00b204e9800998ecf8427e
zumindest einige Inhalte von 'csv' Datei abgeschnitten wird und die Ausgabe, die Sie in das Verständnis hilfreich sein, bekam könnte dein Skript. – Fazlin
aktualisiert mit dieser Info – neilH
ist nicht Ihr 'find' Befehl wird den Pfadnamen zurückgeben? – tale852150