Попробуйте grep с регулярными выражениями:
ls -1 | grep -ve "^a\|^k\|^..[0-9]\|^..\w" | cut -d . -f 2
-v
: вето
-e
: использовать регулярные выражения
-1
- убедитесь, что у вас нет нескольких файлов в одной строке.
Регулярное выражение означает:
^a\|^k
: нет a
или k
в начале
^..[0-9]
: без номера в третьей позиции (.
является подстановочным знаком для одной позиции)
^..\w
: нет слова (символа или _
) на третьей позиции.
Это немного длиннее, но я бы посчитал, что это хороший способ погрузиться в регулярные выражения. Для получения более подробной информации о регулярных выражениях смотрите, например, здесь .
Команда cut
ищет разделитель .
и печатает вторую его часть (-f 2
).