Я нашел сценарий (обычно названный acd_funch.sh), который решил эту проблему для меня. С этим можно ввести cd --
видеть последние 10 каталогов, которые Вы использовали. Это будет выглядеть примерно так:
0 ~/Documents/onedir
1 ~/Music/anotherdir
2 ~/Music/thirddir
3 ~/etc/etc
Перейти в ~/Music/thirddir
просто введите cd -2
Примечание: Этот сценарий был первоначально опубликован в статье бюллетеня Linux, которая доступна здесь: acd_func.sh - расширяет CD удара, чтобы сохранить, отобразить и получить доступ к истории посещаемых имен каталогов.
Ваше регулярное выражение не означает то, что Вы думаете, что оно делает. Это соответствует всем строкам, запускающимся (^) с одним (1) повторным нулем или больше (*) времена. Все строки соответствуют тому регулярному выражению. grep '^1'
делает то, что Вы хотите.
Вы пробовали следующее?
ls -1 | grep "^1"
Таким образом, удалите *
, который в основном говорит grep
, найдите нуль или больше происшествий ^1
выражение. Другими словами: соответствуйте строкам, которые запускаются с 1, или нет.
Хотя это не отвечает на Ваш вопрос, это - лучшее решение того, что, кажется, Ваша цель:
ls -ld 1*
Можно использовать шарик оболочки для списка всех файлов, которые запускаются с 1
. Отметьте это *
имеет другое значение в оболочке globbing, чем регулярные выражения.
*
подстановочный знак, означающий "0 или больше из любого символа". Значение regex объяснено в ответе otokan.
– jordanm
31.12.2012, 07:10
^1.* соответствует целой строке или столь же сказал выше, ^1 содержал строку в строке.
различные стили regex используют различные символы, представляющие символы, некоторые опции указывают, какой стиль Вы хотите. и различные варианты указывают, хотите ли Вы соответствовать целой строке, или просто части ее или целому входу как одна строка.