как мне вывести несколько файлов с заголовком для каждого, но без необходимости листать их?

У меня была такая же проблема. Действительно, я тоже заметил, что $ tree -I 'A/a.jpg'не работает

Но где есть воля, там и способ:

$ tree
.
├── A
│   ├── a.jpg
│   └── b.jpg
└── a.jpg

$ tree --fromfile <<EOF
`tree -f -i -n -F --noreport | grep -v 'A/a.jpg' | grep -v -E '\.$' | sed "s/^\.//"`
EOF
.
├── A
│   └── b.jpg
└── a.jpg

Опция PS:--fromfileдоступна только для дерева 1.8 и выше

0
02.11.2020, 13:30
1 ответ

Вы можете указать xargsдобавить заголовок:

ag -g foo | xargs sh -c '
    for file do
        printf "====== %s =====\n" "$file"
        cat -- "$file"
    done' sh

Или вы можете использовать петлю:

ag -g foo | 
    while IFS= read -r file; do 
        printf '======== %s =======\n' "$file" 
        cat -- "$file"
    done | less

(здесь предполагается, что agвыводит одно имя файла в строке, в отличие от очень специфического формата, ожидаемогоxargs).

2
18.03.2021, 22:53

Теги

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