Замедляет ли машина смешение приложений GTK и Qt?

Похоже, вы пытаетесь разобрать шестизначное число в именах файлов, которые начинаются с $INPUT_FILE_PREFIXи заканчиваются на $INPUT_FILE_SUFFIX.

Так и будет:

for name in "$INPUT_DIR/$INPUT_FILE_PREFIX"??????"$INPUT_FILE_SUFFIX"; do
    test -f "$name" || continue

    number=${name#$INPUT_DIR/$INPUT_FILE_PREFIX}
    number=${number%$INPUT_FILE_SUFFIX}

    printf "Number = %s\n" "$number"
done

Измените каждый ?на [0-9], если вы хотите быть уверенным, что совпадение только цифр(?соответствует одному символу независимо от того, что это за символ ).

Подстановка параметров в цикле удаляет первую часть значения $name, а затем последнюю часть оставшейся строки, оставляя число (из шести символов между префиксом и суффиксом )в середине в качестве единственное, что осталось в переменной $number.


Команда

MYDATE=$("$i" | grep -oP '\d{6,6}')

Как вы обнаружили,

будет интерпретироваться как вызов всего, что находится в $i, как команды. В то же время вы сказали, что если поставить echoперед "$i", это заставит его работать, что и происходит :

.

MYDATE=$(echo "$i" | grep -oP '\d{6,6}')

Связано с вашим кодом:Почему *не *parse `ls `?

1
06.09.2019, 11:40
1 ответ

Он будет использовать больше ОЗУ и кэша из-за дополнительных библиотек. Это приведет к замедлению (большего количества операций подкачки, если оперативной памяти мало; больше промахов кеша ). Однако вы, вероятно, не заметите.

3
27.01.2020, 23:30

Теги

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