Чтобы напечатать имена файлов в каталоге в файле TSV (значения, разделенные табуляцией) в Linux, вы можете использовать различные методы. Вот несколько подходов с примерами кода:
Способ 1: использование команды ls и перенаправления
ls -1 /path/to/directory > files.tsv
Объяснение: Команда ls -1выводит список всех файлов в указанном каталоге, по одному файлу в строке. Затем выходные данные перенаправляются в файл с именем «files.tsv» с помощью оператора >.
Метод 2: использование команды find и printf
find /path/to/directory -maxdepth 1 -type f -printf "%f\t" > files.tsv
Объяснение: команда findищет файлы в указанном каталоге (/path/to/directory) с максимальной глубиной 1 (т. е. только в указанном каталоге, а не в подкаталогах). ). Параметр -type fгарантирует, что будут включены только файлы (а не каталоги). Параметр -printfопределяет формат печати имен файлов, используя %fдля имени файла и \tдля разделителя табуляции. Затем выходные данные перенаправляются в файл с именем «files.tsv».
Метод 3: использование команды дерева и sed
tree -fi /path/to/directory | sed 's/[^\/]*\///' > files.tsv
Объяснение: Команда treeрекурсивно выводит список файлов и каталогов в древовидном формате. Параметр -fпечатает полный префикс пути для каждого файла, а параметр -iотключает линии отступов. Затем вывод передается команде sed, которая удаляет путь к каталогу из каждой строки, оставляя только имена файлов. Результат перенаправляется в файл с именем “files.tsv”.
Метод 4. Использование Python
import os
directory = '/path/to/directory'
files = os.listdir(directory)
with open('files.tsv', 'w') as f:
for file in files:
f.write(file + '\t')
Объяснение: Этот код Python использует модуль osдля вывода списка всех файлов в указанном каталоге. Функция os.listdir()возвращает список имен файлов. Затем код открывает файл с именем «files.tsv» в режиме записи с помощью функции open()и записывает каждое имя файла, за которым следует разделитель табуляции.