Как перечислить все пути к каталогам, включая текст?

Проблема в том, что STDC_HEADERS не определяется при компиляции кода. См. Строку 47 этой версии regex.c . Вероятно, это произошло потому, что вы не запустили configure или выполнили его, но что-то пошло не так.

Если вы не запускали configure, просто запустите его:

./configure   

Если вы все же запустите, он должен сгенерировать файл с именем config.h , который должен использовать #define для определения макроса STDC_HEADERS некоторого значения. В противном случае возможно, что в используемом компиляторе отсутствует что-то, от чего он зависит (например, файлы заголовков системы), либо он настроен или неправильно установлен.

Как я уже упоминал в комментарии выше, выпуску binutils, который вы используете, уже более 4 лет , и я думаю, вам следует использовать более новую версию.

1
30.04.2019, 15:01
3 ответа

Чтобы найти все пути к каталогам от текущего каталога вниз, которые содержат определенную строкуtpcc:

find. -type d -path '*tpcc*'

Предикат -pathбудет сопоставлять шаблон с именами путей, с которыми встречается find, и, если он соответствует шаблону, будет напечатан текущий путь.

Если вы не хотите чтобы шаблон совпадал в конце текущего имени пути, вместо этого используйте *tpcc*/*в качестве шаблона. Сопоставление /где-то после tpccприведет к тому, что findнайдет каталоги строго ниже любого каталога, имя которого содержит tpcc.

-type dограничивает поиск только каталогами.

Хотели бы вы обернуть это в простую в использовании функцию оболочки:

pathfind () {
    case $# in
        1)  # only a string was given
            searchpath=.
            searchstring=$1
            ;;
        2)  # search path and string was given
            searchpath=$1
            searchstring=$2
            ;;
        *)  # anything else is an error
            echo 'Expected one or two arguments' >&2
            return 1
    esac

    find "$searchpath" -type d -path "*$searchstring*"
}

Вы можете использовать это как

pathfind tpcc

или как

pathfind /some/path tpcc

или

pathfind /some/path 'tpcc*/'
4
27.01.2020, 23:18

Задача, которую вы описываете, была бы удовлетворена

find. -type d | grep tpcc

, но это также будет список каталогов «ветвей», а не только «конечных» каталогов:

/home/arghy/sampledir1/tpcc-uva
/home/arghy/sampledir1/tpcc-uva/subdir1
/home/arghy/sampledir1/tpcc-uva/subdir1/subdir2

Это нормально или вы хотите пропустить каталоги с большим количеством подкаталогов внутри?

0
27.01.2020, 23:18
sudo find DIRECORY  -type f -exec grep -Iq. {} \; -exec dirname {} \; | sort|uniq

проверить эту ссылку:URL

فارسی :با دستور بالا میتوانید پاسخ سوال خود را دریافت کنید. موفق و پیروز باشید

یاعلی ع

0
27.01.2020, 23:18

Теги

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