Используйте "pushd-n" (предположение, что Вы используете удар).
Добавьте к своему ~/.bashrc:
pushd -n /Project/Warnest/docs/
pushd -n ~/Dropbox/Projects/ds/test/
затем,
cd ~
Ваш дом,
cd ~1
~/Dropbox/Projects/ds/test/
cd ~2
/Project/Warnest/docs/
Можно использовать ~1
,~2
и т.д. точно таким же образом как ~
.
Снабдите префиксом первое число a 0
вынудить каждый термин иметь ту же ширину.
$ echo {08..10}
08 09 10
От удара страница справочника разделяют на Расширении Фигурной скобки:
Предоставленные целые числа могут быть снабжены префиксом 0, чтобы вынудить каждый термин иметь ту же ширину. Когда или x или y начинаются с нуля, оболочка пытается вынудить все сгенерированные условия содержать то же количество цифр, дополнение нуля в случае необходимости.
Также обратите внимание, что можно использовать seq
с -w
опция компенсировать ширину путем дополнения продвижением обнуляет:
$ seq -w 8 10
08
09
10
$ seq -s " " -w 8 10
08 09 10
Если Вы хотите больше управления, можно даже указать формат стиля printf:
$ seq -s " " -f %02g 8 10
08 09 10
если Вы используете printf
printf "%.2d " {8..10}
это вызовет, чтобы быть 2 символами и добавит продвижение 0. В случае, если Вам нужны 3 цифры, можно измениться на "%.3d".
printf
решение, но это действительно не делает это легче. Я надеюсь, что существует некоторый скрытый прием, который делает задание :)
– Bernhard
04.01.2013, 10:49
Используйте диапазон, который запускается с постоянной цифры, и снимите изоляцию с той цифры:
echo \ {108..110} | sed 's/ 1//g'
или не используя внешнюю команду:
a=({108..110}); echo "${a[@]#1}"
Для использования в для цикла:
for x in {108..110}; do
x=${x#1}
…
done
хотя для этого случая некоторое время цикл был бы более ясным и работы в любой оболочке POSIX:
x=8
while [ $x -le 10 ]; do
n=$((100+x)); n=${n#1}
…
x=$((x+1))
done
for
цикл во всяком случае.
– Bernhard
26.01.2013, 01:06
Для ссылки я думаю, что автоматическая фиксированная ширина только возникает с последней версией удара:
$ bash -version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ echo test{00..05}
test0 test1 test2 test3 test4 test5
Немного более утомительно, но он работает над OP-версией bash (и более поздними версиями, я бы предположил).[1175359].
for i in $(seq -s " " -f %0${zeros}g $ini $fin); do ....;done
Zeros, ini и fin vars, поэтому его легко писать только нули, которые вы говорите в «Zeros» для INI для плавника без проблем;)
echo {08..10}
решение, однако, это только представлено для версии 4 удара и. – Bernhard 04.01.2013, 11:05perl
) начальный нуль указывает на восьмеричное число. Я предполагаю, что это не часто, Вы хотите последовательность восьмеричных чисел... – kurtm 11.10.2013, 18:01seq
с-w
переключитесь как так:seq -w 003
производит номера 001, 002, и 003. – slm♦ 06.05.2014, 22:08foo_00001.someextension
где почти все контексты сортировки обеспечивают нормальное упорядочивание. – Stéphane Gourichon 16.01.2017, 17:11