LINUX.ORG.RU

Простой вопрос по bash. Подстановка имени файла.

 


0

1

С подстановкой при поиске файла всё просто.

А я задумал создать множество файлов

file1 file2 file3 etc
и вот не могу понять. Чего хоть почитать и как правильно загуглить, ткните кому не сложно.

★★★★★

Ответ на: комментарий от burato

Но чтобы не был file2 отсортирован как меньше file10, удобнее делать file01 и так далее:

for i in {1..99}; do touch file$(printf "%02d" $i); done

vodz ★★★★★
()
Ответ на: комментарий от aedeph_

seq -w

Это всё равно отдельный процесс. Да и программирование позволяет сделать любые хотелки, а seq — это именно последовательно, пусть и вперед или назад с шагом.

vodz ★★★★★
()
Ответ на: комментарий от aedeph_

как будто не отдельный процесс

Это можно сделать не отдельным. Так например делает busybox.

А 1..99 это параллельно?

Я говорил, что «позволяет сделать любые хотелки»

vodz ★★★★★
()
Ответ на: комментарий от aedeph_

То есть в твоём мире 1..99 позволяет сделать любые хотелки.

В моём примере не был вызван seq, господин тролль.

vodz ★★★★★
()
Ответ на: комментарий от vodz
seq -w 01 99 | xargs touch

лучше по двум причинам:

1. {1..999999999999999} «повесит» комп.

2. xargs можно и на parallel заменить и вот тут уж точно всё возможно 8)

legolegs ★★★★★
()
Ответ на: комментарий от burato

И ctrl+c не помогло, да? Подлая штука. С мобилки по ссш иногда можно успеть, но потом всё. Ну я всегда рад поделиться знанием, можешь не благодарить!

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от legolegs

Шучу. Такое не буду даже в виртуалбоксе проверять.

burato ★★★★★
() автор топика
Ответ на: комментарий от legolegs

лучше по двум причинам:

лучше чем что? Чем армяне? Вы точно на мой коммент отвечаете? Напомню, что я {1..999999} и не рекомендовал, правда по другой причине. Но а то что это выжирает память — это баг bash-а, ибо количество аргументов ограничено и для этого xargs и придуман, можно было б сразу проверить на количество, а не выжрать вначале память, а потом сказать, что args того. А в цикле можно и не генерить все сразу строки.

А seq ни в один shell не вставляют встроенной командой, потому что он уже давно нафиг не нужен как и expr.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 2)
Ответ на: комментарий от legolegs

на parallel заменить и вот тут уж точно всё возможно

Про параллельность — это к aedeph_. Я этого слова не говорил. Я лишь сказал, что seq делает последовательность с куцими условиями, а программирование позволяет сделать любые последовательности по любым хотелкам. Ну например, в шестнадцатеричном виде.

vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.