То, как создать последовательность с продвижением, обнуляет расширение фигурной скобки использования

Используйте "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 и т.д. точно таким же образом как ~.

47
07.01.2013, 00:53
6 ответов

Снабдите префиксом первое число 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
72
27.01.2020, 19:34
  • 1
    После того, как просто узнано о echo {08..10} решение, однако, это только представлено для версии 4 удара и. –  Bernhard 04.01.2013, 11:05
  • 2
    Это делает меня немного неудобным, что удар делает это. Для набора утилит (например, perl) начальный нуль указывает на восьмеричное число. Я предполагаю, что это не часто, Вы хотите последовательность восьмеричных чисел... –  kurtm 11.10.2013, 18:01
  • 3
    Нужно отметить, что можно также снабдить префиксом числа при предоставлении затем seq с -w переключитесь как так: seq -w 003 производит номера 001, 002, и 003. –  slm♦ 06.05.2014, 22:08
  • 4
    @kurtm не волнуется о продвижении, обнуляет. Это могло причинить боль, когда что-то пытается проанализировать число. То, в чем это действительно полезно, должно генерировать последовательность имени файла foo_00001.someextension где почти все контексты сортировки обеспечивают нормальное упорядочивание. –  Stéphane Gourichon 16.01.2017, 17:11

если Вы используете printf

printf "%.2d " {8..10} 

это вызовет, чтобы быть 2 символами и добавит продвижение 0. В случае, если Вам нужны 3 цифры, можно измениться на "%.3d".

9
27.01.2020, 19:34
  • 1
    Спасибо за Ваш ответ. Я знаю printf решение, но это действительно не делает это легче. Я надеюсь, что существует некоторый скрытый прием, который делает задание :) –  Bernhard 04.01.2013, 10:49
  • 2
    Это - единственный ответ, который кажется достаточно универсальным для обработки любого обстоятельства для источника числа для заполнения. Я использую счетчик, поскольку я циклично выполняюсь через файлы. Это printf решение обнуляет клавиатуры безупречно, в то время как все другие, кажется, фокусируются на генерации дополненных нулем чисел, а не дополняющих нуль существующих чисел. –  mightypile 02.01.2015, 04:11

Используйте диапазон, который запускается с постоянной цифры, и снимите изоляцию с той цифры:

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
7
27.01.2020, 19:34
  • 1
    , я принял этот ответ выше других ответов, потому что он удовлетворяет запрос на Bash 3.x. Тем более, что мне было нужно 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
1
27.01.2020, 19:34
[1175356] У меня есть та же самая bash-версия оригинального плаката ([1175720]GNU bash, версия 3.2.51(1)-release[1175721]) и [1175722]{08... 12}[1175723] не работает на меня, но следующее работает:

Немного более утомительно, но он работает над OP-версией bash (и более поздними версиями, я бы предположил).[1175359].

6
27.01.2020, 19:34
for i in $(seq -s " " -f %0${zeros}g $ini $fin); do ....;done

Zeros, ini и fin vars, поэтому его легко писать только нули, которые вы говорите в «Zeros» для INI для плавника без проблем;)

-3
27.01.2020, 19:34

Теги

Похожие вопросы