Рейтинг:1

Как контролировать вывод команды «дерево -F»?

флаг cn

Я использую команду «дерево» для создания текстового файла, который анализирую в Libre Office Calc:

дерево -ifsD --timefmt "%Y-%m-%d %T" $PWD > dirlist_tree.txt

Я добавил параметр «-F», чтобы добавить «/» в конец строк каталога, чтобы помочь Calc с анализом:

дерево -F -ifsD --timefmt "%Y-%m-%d %T" $PWD > dirlist_tree.txt

Из того, что мне удалось найти до сих пор, есть три дополнительных символа, которые эта опция может добавить к выводу. По крайней мере, один из них вызывает у меня некоторые проблемы, поэтому этот вопрос:

Как я могу ограничить дерево -F команда, которая будет добавлять только '/' к строкам каталога и никакие другие, например '=' или '|' или '*', что он сейчас делает?

Благодарность,

БабаГ

Рейтинг:1
флаг in

Разобрать дерево вывод, вы должны использовать машиночитаемый вывод, например. json с дерево -J:

Например. парсинг в CSV с использованием Питон, чтобы напрямую открыть в Libre Office Calc:

tree_to_csv.py

#!/usr/bin/env python3

импортировать json,sys,csv
данные = json.load(sys.stdin)

элементы = []

защита get_element (эль):
    глобальные элементы
    если "размер" в эл:
        elements.append(эль)
    если эл["тип"] == "каталог":
        для sub_el в el["contents"]:
            get_element(sub_el)

для el в данных: 
    получить_элемент (эль)

имена полей = ['размер', 'время', 'имя']
писатель = csv.DictWriter(sys.stdout, fieldnames=fieldnames, extrasaction='ignore')

писатель.writeheader()

для el в элементах:
    если эл["тип"] == "каталог":
        эль["имя"] += '/'
    писатель.writerow (эль)

Бег:

дерево -Jsf --timefmt "%Y-%m-%d %T" | питон tree_to_csv.py
BabaG avatar
флаг cn
Ух ты! Спасибо за это, pLumo. Это намного больше, чем я ожидал. Я надеялся сохранить свой процесс более или менее как есть, а не переходить на вызов скрипта Python. Я надеялся, что я мог бы добавить какой-нибудь простой квалификатор, который велел бы '-F' опускать '=', '|' и '*' и применять только '/' к строкам каталога. Это потребует от меня большого переосмысления, так как я не очень хороший скриптер/программист.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.