Если вы хотите безопасно определить длину строки с помощью bash, вам следует использовать расширение параметров. ls
сам по себе способен только на синтаксис glob, который (скорее всего) не может сделать то, что вы хотите. find
имеет различные реализации на BSD и некоторых Linux, а -regextype
не обязательно является легальным флагом. Хорошей новостью является то, что в bash есть циклы, и они могут дать вам то, что вы хотите.
for filename in * # globs all files in your directory.
do
clip=${filename%.*} # excludes the first extension
if [[ ${#clip} -eq 5 ]] # test the length of the remaining string
then
ls -d $filename # call ls to show you the file or directory
fi
done
Если вместо этого вам нужно любое имя файла, состоящее только из пяти буквенно-цифровых символов, ваш метод и другие ответы вернут только те файлы, которые начинаются с пяти символов. Например:
Используя ls [a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]
five1.txt # matches
fi_ve.txt # fails
a.pages # fails
q_fiver.txt # fails
для включения любого файла с любой буквенно-цифровой строкой длиной в пять символов, и только те, которые содержат любую буквенно-цифровую строку длиной в пять символов, вы можете использовать grep
более универсальную реализацию regex в bash. Хотя я обычно не рекомендую этого делать, использование \w
и \W
здесь может сильно помочь читаемости (где \w
= [[: alnum:]]
и \W
= [^[:alnum:]]]
- но они будут включать подчеркивания, так что используйте на страх и риск).
for filename in *
do
if (grep -qE '(^|\W)\w{5}($|\W)' <<<"$filename")
then
ls -d "$filename"
fi
done
Это решил сам Александр. :)Резюме из списка рассылки:
Aleksander:
That is just an informative message. MM is not touching that interface
for anything, it's just saying it cannot be used as part of a modem,
as there is no control port. No udev rule to ignore the device will be
hit, because MM is not even trying to use the device. That is
definitely nothing to worry about.
Is MM really hanging the boot process? What exactly are you seeing?
Any actual logs you can share?
At one time, it did appear to be MM hanging the boot process because once MM was removed, the boot hang was also removed. Now, it seems MM is not the culprit!*
Now, I only wonder, is it necessary that MM provide the informative message at all?
I think that message is not debug, and I agree that it may be a bit
confusing to see it :D I'll see what I can do to silence those.
--
Aleksander