Како користити команду сек на Линук-у

Линук сек команда генерише листе бројева за трен ока. Али како се ова функционалност може применити у пракси? Показаћемо вам како би вам сек могао добро доћи.

Команда сек

На први поглед, Линук сек команда делује као нешто чудно. Омогућава вам да генеришете низови бројева брзо и то је то! Међутим, кључна реч је „брзо“. За тренутак ћете видети колико брзо ова мала команда може да ради.

Без обзира на то како се генеришу, колико је корисна листа бројева? Команда сек је додата у 8. издање Уник-а 1985. Од тада је ту, тако да мора да уради нешто вредно труда.

Тхе филозофија Уника је да је пун малих услужних програма који раде једну ствар и то добро. Једно од централних начела ове филозофије је писање програма који прихватају унос из других програма. Наравно, то такође значи да ови програми морају да генеришу излаз који други програми могу користити као улаз.

Команда сек постаје сама по себи када се користи са другим командама које користе њен излаз, било кроз цеви или проширење командне линије.

Генерисање основне листе

Ако покренете сек са једним бројем као параметром командне линије, он броји од један до тог броја. Затим штампа бројеве у прозору терминала, један број по реду, као што је приказано испод:

seq 6

Тхе

Ако унесете два броја у командну линију, први ће бити почетни, а други крајњи број, као што је приказано испод:

seq 4 10

Можете подесити величину корака тако што ћете укључити трећи број. Налази се између почетног и крајњег броја. Укуцавамо следеће да тражимо од сек да направи листу бројева која почиње са шест, завршава се на 48 и користи корак од шест:

seq 6 6 48

Цоунтинг Бацквард

Такође можемо тражити од сек-а да направи листу бројева од највишег до најнижег. Да бисмо то урадили, међутим, морамо да обезбедимо корак који је негативан.

  Понестаје вам простора на диску на Линук-у? Проверите своје дневнике!

Следећа команда производи листу која броји од 24 до 12 у корацима од 6 јер корак откуцавамо као негативан број:

seq 24 -6 12

Бројање са децималима

Бројеви почетка, краја и корака такође могу бити децимални. Ако је било који од бројева децимални, остали се такође третирају као децимале. Следећа команда генерише листу бројева са кораком од 0,2:

seq 1 0.2 2

Брзина сек

сек је невероватно брз — једино уско грло је време које вам је потребно да унесете команду у прозор терминала. Да бисмо тестирали његову брзину, тражимо листу од 250.000 бројева.

Укуцамо следеће, користећи време команду да видите колико дуго је потребно да се процес заврши:

time seq 250000

Резултати се приказују испод листе. Чак и на нашем тест рачунару са умереном снагом, сек је изненађујуће брз.

Цела листа је креирана и исписана на екрану за око 1/3 секунде. Ако преусмеримо листу у датотеку, можемо чак да избегнемо претерано куцање у прозору терминала.

Да бисмо то урадили, откуцавамо следеће:

time seq 250000 > numbers.txt

тиме сек 250000 > нумберс.ткт у прозору терминала.“  видтх=”646″ хеигхт=”147″ онлоад=”пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”  онеррор=”тхис.онеррор=нулл;пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”></п> <п>Време које је потребно за комплетирање листе и креирање датотеке је сада око 1/7 секунде.< /п> <х2 улога=Коришћење сепаратора

Знак новог реда је подразумевани знак који се приказује између сваког броја на листи. Због тога се појављују као вертикална листа, са сваким бројем на својој линији. Ако је потребно, можете да наведете други сепаратор.

На пример, рецимо да треба да направите листу раздвојену зарезима, листу подељену двотачкама или било који други знак интерпункције или симбол. Разграничење је заправо стринг, тако да можете користити више од једног знака.

  Како инсталирати Адобе Брацкетс на Линук

Користићемо опцију -с (сепаратор). Следећа команда ће произвести листу раздвојену зарезима:

seq s, 6 6 36

Ова команда ће користити двотачку (:) као сепаратор:

seq -s: 6 6 36

Ова команда говори сек-у да користи две цртице (-) као сепаратор:

seq -s-- 6 6 36

Коришћење низова формата

Команда сек такође подржава Ц у стилу језика формат стрингова. Они вам омогућавају да форматирате излаз са много више контроле него само навођењем сепаратора. Да бисте користили низ формата, користите опцију -ф (формат).

Следећа команда говори сек-у да користи нуле за додавање два знака у излаз:

seq -f "%02g" 6

сек -ф

Можемо да форматирамо стринг било којим текстом који нам се свиђа и да број поставимо било где у низу, на следећи начин:

seq -f "Number %02g in a C-like format string" 6

сек -ф

Брз начин за постављање нулте подлоге

Најбржи начин да поставите нулти паддинг је да користите опцију -в (једнака ширина). Ово говори сек-у да користи нуле за попуњавање бројева, тако да су сви исте ширине као највећи број.

Следећа команда броји од 0 до 1000 у корацима од 100, а сви бројеви ће бити допуњени нулама:

seq -w 0 100 1000

Најдужи број има четири знака, тако да су сви ужи бројеви допуњени нулама до те ширине (чак је 0 допуњен на четири нуле).

Пипинг сек Инто бц

Постављањем сепаратора као математичког симбола и слањем листе у команду бц, можемо процени бројеве у тој листи.

Следећа команда генерише листу бројева раздвојених звездицама

seq -s* 6

почевши од један и завршавајући са шест:

seq -s* 6 | bc

Ако ту листу убацимо у бц, она процењује листу помоћу звездица

seq -s+ 5

као симболи за множење:

seq -s+ 5 | bc

То можемо учинити и са другим симболима. Наредба у наставку користи знак плус (+) за креирање листе у коју су додати сви бројеви:

Укуцавамо следеће да бисмо то пребацили у бц и проценили листу: Креирање датотека са сек Команда додира

  7 одличних алтернатива за Линук апликације за Виндовс апликације

ажурира временске и датумске ознаке

touch $(seq -f "file-%g.txt" 1 10)

на фајловима. Ако датотека не постоји, додир је креира. Можемо да користимо проширење командне линије са додиром и секвенцом да бисмо креирали колекцију тематски именованих, али различито нумерисаних датотека.

ls file*

Направићемо скуп од 10 датотека са истим основним именом и различитим бројем (датотека-1.ткт, датотека-2.ткт и тако даље).  Укуцавамо следеће:

Затим откуцавамо следеће да бисмо проверили датотеке:

додирните $(сек -ф

Коришћење сек у Басх петљама

#!/bin/bash

  for val in $(seq 5 0.2 6.6); do

  echo "The value is now: $val"

done

Можемо да користимо сек у Басх скриптама за контролу петљи са децималама.

chmod +x loop.sh

Откуцајте следећи текст у уређивач, а затим га сачувајте као „лоопс.сх“:

./loop.sh

Затим откуцавамо следеће да бисмо нашу нову скрипту учинили извршном:

Када покренемо скрипту, бројач петље се штампа у прозору терминала. Затим можемо да откуцамо следеће да видимо да се бројач децималне петље повећава са сваком итерацијом петље:

Запамтите да сек може рачунати и уназад; можете то користити у петљама на исти начин. Лепо и једноставно Једна ствар у вези са секвенцом је да нема много криве учења. Има а

освежавајуће кратко

ман страницу, али и даље можете да је користите на занимљиве начине. Пошто често треба да брзо креирамо тест датотеке реалних величина, користимо сек са стрингом формата. Затим преусмеравамо излаз да креирамо датотеку која садржи онолико линија лажних података колико желимо.