2015-03-01 2 views
-1

Мне нужна небольшая помощь с командой bash в Ubuntu 14.04.Удалить пробелы и хвосты с именами файлов

У меня есть папка со многими вложенными папками, а некоторые из файлов с папками и именами имеют ведущие или хвостовые пробелы. Мне нравится переименовывать эти папки и файлы, но с тем же именем файла, без пробелов - начало и конец имени файла. Как рекурсивное переименование файла или что-то в этом роде. Я пробовал его с sed, но я не убегаю, как он работает.

Я надеюсь, что кто-то может мне помочь.

ответ

0

Это должно сделать:

shopt -s extglob 
while IFS= read -r -d '' f; do 
    d=${f%/*} b=${f##*/*([[:space:]])} b=${b%%+([[:space:]])} 
    echo mv -v -- "$f" "$d/$b" 
done < <(
    find -depth \(-name '[[:space:]]*' -o -name '*[[:space:]]' \) -print0 
) 

Как написано, он ничего не будет делать, это будет только эхо mv, которая будет выполняться. Удалите echo, если вы довольны этим.

Смежные вопросы