У меня есть этот маленький script в sh (Mac OSX 10.6), чтобы просмотреть массив файлов. На этом этапе Google перестает быть полезной:
files="*.jpg"
for f in $files
    do
        echo $f | grep -oEi '[0-9]+_([a-z]+)_[0-9a-z]*'
        name=$?
        echo $name
    done
До сих пор (очевидно, для вас, гуру-оболочки) $name просто содержит 0, 1 или 2, в зависимости от того, было ли grep установлено, что имя файла соответствует предоставленному вопросу.  Я хотел бы захватить то, что внутри parens ([a-z]+), и сохранить его переменной.
Я бы хотел, чтобы  использовал grep, если возможно. Если нет, пожалуйста, не используйте Python или Perl и т.д. sed или что-то в этом роде - я новичок в оболочке и хотел бы атаковать это от угла пуриста * nix.
Кроме того, как  super-cool bonu, мне любопытно, как я могу объединить строку в оболочке? Я захватил группу, это строка "somename", хранящаяся в $name, и я хотел добавить строку ".jpg" до конца, могу ли я cat $name '.jpg'?
Пожалуйста, объясните, что происходит, если у вас есть время.
