używam następujący skrypt powłoki bash notować pliki „.txt” rekursywnie w bieżącym katalogu:Bash Shell lista plików za pomocą pętli „for”
#!/bin/bash
for file in $(find . -type f -name "*.txt")
do
echo $file
# Do something else.
done
Jednak niektóre pliki „.txt” w bieżącym katalogu znajdują się spacje w swoich nazwach, np "mój test.txt". Lista zostanie uszkodzona, np. „Mój testing.txt” znajduje się na liście
my
testing.txt
Wydaje się, że „za” pętla używa „spacji” (spacja \ n etc) w celu oddzielenia listę plików, ale w moim przypadku chcę używać tylko "\ n", aby oddzielić listę plików.
Czy istnieje sposób, w jaki mogę zmodyfikować ten skrypt, aby osiągnąć ten cel. Dowolny pomysł.
Z góry dziękuję.
W bashie, myślę, że używasz 'find ... -print0' i' IFS = "\ 0" "lub w tym miejscu. Z pewnością istnieją inne pytania na ten temat. –