Имя файла относительно папки в bash shell

Имя файла относительно папки в bash shell

15.01.2020 09:41:23 Просмотров 18 Источник

Имеется папка структуры:

folder/
  file-1.txt
  file-2.txt
  file-3.doc
  nested-folder/
   file-4.txt
   file-5.doc
   file-6.doc

Нужно вывести в bash shell названия файлов относительно этой папки и только .txt. Пример:

file-1.txt
file-2.txt
nested-folder/file-4.txt

У меня получился такой скрипт:

folder=(/path/to/folder/**/*.txt)

for ((i=0; i<${#folder[@]}; i++)); do
    echo ${folder[$i]}
done

Но он выводит полные пути, а именно:

/path/to/folder/file-1.txt 
/path/to/folder/file-2.txt 
/path/to/folder/nested-folder/file-4.txt 

Как мне улучшить данный скрипт?

У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/1070361/%d0%98%d0%bc%d1%8f-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%be%d1%82%d0%bd%d0%be%d1%81%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be-%d0%bf%d0%b0%d0%bf%d0%ba%d0%b8-%d0%b2-bash-shell#comment1836218_1070361
@karaname а можно пожалуйста поподробней куда это ставить в скрипте?

Ответы - Имя файла относительно папки в bash shell / Имя файла относительно папки в bash shell

Является ответом!
Ainar-G

15.01.2020 10:43:50

Это очень просто:

$ cd /tmp
$ mkdir -p f/n
$ touch f/f.txt f/f.doc f/n/f.txt f/n/f.doc
$ find f -name '*.txt'
f/f.txt
f/n/f.txt

Причём, работает даже в POSIX Shell.

Закрыть X