Как создать новый файл, который содержит имя файла и информацию о его исходном каталоге [закрыто]

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

Например:

  • У меня есть образец имени папки, который содержит в нем подкаталоги sample1 и sample2
  • У меня есть ex1.csv, ex2.csv в примере 1 и ex3.csv, ex4.csv в каталоге образца 2

. Мне нужно создать текстовый файл (или) файл CSV, который предоставляет информацию в следующим образом

ex1.csv, sample / sample1

ex2.csv, sample / sample1

ex3.csv, sample / sample2

Было бы здорово, если бы кто-нибудь помог мне создать файл сценария в unix

Заранее спасибо

0
задан 30 August 2016 в 04:29

1 ответ

Учитывая структуру как

$ tree sample
sample
├── sample1
│   ├── ex1.csv
│   └── ex2.csv
└── sample2
    ├── ex3.csv
    └── ex4.csv

2 directories, 4 files

можно использовать

$ find sample -type f -printf '%f,%h\n'
ex2.csv,sample/sample1
ex1.csv,sample/sample1
ex3.csv,sample/sample2
ex4.csv,sample/sample2

От man find, соответствующее -printf, спецификаторы формата

       %f     File's  name  with  any leading directories removed (only
              the last element).

       %h     Leading directories of file's name (all but the last ele‐
              ment).  If the file name contains no slashes (since it is
              in the current directory) the  %h  specifier  expands  to
              ".".

, Если Вы хотите результаты в файле, просто перенаправляете вывод команды с помощью > оператор, например,

find sample -type f -printf '%f,%h\n' > filelist
1
ответ дан 28 September 2019 в 15:35

Другие вопросы по тегам:

Похожие вопросы: