Как да използвате командата seq в Linux

Подкана за терминал на компютър с Linux.

Фатмавати Ахмад Заенури/Shutterstock



Linux |_+_| команда генерира списъци с числа за миг на око. Но как тази функционалност може да се използва на практика? Ще ви покажем как seq може да ви бъде полезен.

Командата seq

На пръв поглед Linux |_+_| командата изглежда нещо странно. Позволява ви да генерирате поредици от числа бързо и това е! Ключовата дума тук обаче е бързо. След миг ще видите колко бързо може да работи тази малка команда.





Независимо от това как са генерирани обаче, колко полезен е списъкът с числа? |_+_| Командата е добавена към 8-то издание на Unix през 1985 г. Оттогава е там, така че трябва да направи нещо, което си заслужава.

В философия на Unix е, че е пълен с малки помощни програми, които правят едно нещо и го правят добре. Един от основните принципи на тази философия е да се пишат програми, които приемат вход от други програми. Разбира се, това също означава, че тези програми трябва да генерират изход, който може да се използва като вход от други програми.



|_+_| командата влиза в сила, когато се използва с други команди, които използват нейния изход, или чрез тръби или разширение на командния ред.

Генериране на основни списъци

Ако стартирате |_+_| с едно число като параметър на командния ред, той брои от едно до това число. След това отпечатва числата в прозореца на терминала, по едно число на ред, както е показано по-долу:

seq



Реклама

Ако въведете две числа в командния ред, първото ще бъде началният номер, а вторият ще бъде крайният номер, както е показано по-долу:

seq

Можете да зададете размер на стъпката, като включите трето число. Той се намира между началното и крайното число. Пишем следното, за да попитаме |_+_| за да създадете списък с числа, който започва с шест, завършва на 48 и използва стъпка от шест:

seq

Броене назад

Можем също да попитаме |_+_| за да създадете списък с числа от най-високо до най-ниско. За да направим това обаче, трябва да предоставим стъпка, която е отрицателна.

Следната команда създава списък, който брои от 24 до 12 на стъпки от 6, защото въвеждаме стъпката като отрицателно число:

seq

Броене с десетични знаци

Началните, крайните и стъпките също могат да бъдат десетични. Ако някое от числата е десетично, останалите също се третират като десетични. Следната команда генерира списък с числа със стъпка от 0,2:

seq

Скоростта на сек

|_+_| е невероятно бърз – единственото затруднение е времето, което ви отнема да въведете командата в прозореца на терминала. За да тестваме скоростта му, нека поискаме списък от 250 000 числа.

Реклама

Пишем следното, използвайки seq команда, за да видите колко време отнема процесът да завърши:

seq

Резултатите се показват под списъка. Дори на нашия тестов компютър с умерена мощност, |_+_| е изненадващо бързо.

Целият списък беше създаден и изписан на екрана за около 1/3 от секундата. Ако пренасочим списъка във файл, можем дори да избегнем излишните разходи при въвеждане в прозореца на терминала.

За целта набираме следното:

seq

Времето, необходимо за попълване на списъка и създаване на файла, сега е около 1/7 от секундата.

Използване на разделител

Знакът за нов ред е знакът по подразбиране, който се показва между всяко число в списък. Ето защо те се появяват като вертикален списък, като всяко число е на отделен ред. Ако трябва, можете да предоставите друг разделител.

Реклама

Например, да речем, че трябва да създадете списък, разделен със запетая, списък, разделен на двоеточия, или друг препинателен знак или символ. Разделителят всъщност е низ, така че можете да използвате повече от един знак.

Ще използваме |_+_| опция (разделител). Следната команда ще създаде списък, разделен със запетая:

time

Тази команда ще използва двоеточие (|_+_|) като разделител:

seq

Тази команда казва |_+_| да използвате две тирета (|_+_|) като разделител:

-s

Използване на форматни низове

|_+_| командата също поддържа С езиков стил форматни низове. Те ви позволяват да форматирате изхода с много повече контрол, отколкото просто да посочите разделител. За да използвате низ за форматиране, използвате |_+_| опция (формат).

Следната команда казва |_+_| да използвате нули за допълване на изхода до два знака:

:

Реклама

Можем да форматираме низа с произволен текст и да поставим числото навсякъде в низа, както следва:

seq

Бърз начин за задаване на нулева подложка

Най-бързият начин да зададете нулево запълване е да използвате |_+_| опция (равна ширина). Това казва |_+_| да използвате нули за подреждане на числата, така че всички те да са със същата ширина като най-голямото число.

Следната команда отброява от 0 до 1000 на стъпки от 100 и всички числа ще бъдат допълнени с нули:

-

Най-дългото число отнема четири знака, така че всички по-тесни числа са допълнени с нули до тази ширина (дори 0 е допълнена до четири нули).

Тръбопровод seq Into bc

Като зададете разделителя като математически символ и прехвърлите списъка в |_+_| командваме, можем оценете числата в този списък .

Следната команда генерира списък с числа, разделени със звездички (|_+_|), като се започне от едно и завършва с шест:

seqРеклама

Ако подадем този списък в |_+_|, той оценява списъка, използвайки звездичките (|_+_|) като символи за умножение:

-f

Можем да направим това и с други символи. Командата по-долу използва знак плюс (|_+_|), за да създаде списък, в който се добавят всички числа:

seq

Пишем следното, за да го въведем в |_+_| и оценете списъка:

-w

Създаване на файлове със сек

|_+_| команда актуализира печатите за час и дата на файлове. Ако файлът не съществува, докосването го създава. Можем да използваме разширение на командния ред с |_+_| и |_+_| за създаване на колекция от тематично наречени, но различно номерирани файлове.

Ще създадем набор от 10 файла със същото основно име и различен номер (file-1.txt, file-2.txt и т.н.). Пишем следното:

seq

След това въвеждаме следното, за да проверим файловете:

bc

Използване на seq в Bash Loops

Можем да използваме |_+_| в Bash скриптове за управление на цикли с десетични знаци.

Реклама

Въведете следния текст в редактор и след това го запазете като loops.sh:

*

След това въвеждаме следното, за да направим нашия нов скрипт изпълним:

bc

Когато стартираме скрипта, броячът на цикъла се отпечатва в прозореца на терминала. След това можем да напишем следното, за да видим, че броячът на десетичния цикъл се увеличава с всяка итерация на цикъла:

*

Не забравяйте, че |_+_| може да брои и назад; можете да го използвате в цикли по същия начин.

Хубаво и просто

Едно нещо за |_+_| дали няма много крива на учене. Има освежаващо кратко |_+_| страница, но все пак можете да я използвате по интересни начини.

Тъй като често се налага бързо да създаваме тестови файлове с реалистични размери, ние използваме |_+_| с форматен низ. След това пренасочваме изхода, за да създадем файл, съдържащ толкова редове фиктивни данни, колкото искаме.

Linux команди
Файлове катран · pv · котка · такт · chmod · сцепление · разл · sed · С · човек · pushd · popd · fsck · тестов диск · сек · fd · пандока · CD · $PATH · awk · присъединяване · jq · сгънете · уникален · journalctl · опашка · състояние · ls · fstab · изхвърли · по-малко · chgrp · chown · rev · виж · струни · Тип · преименувайте · цип · разархивирайте · монтиране · umount · Инсталирай · fdisk · mkfs · rm · rmdir · rsync · df · gpg · ние · нано · mkdir · от · вътрешен · кръпка · преобразувам · rclone · накъсайте · SRM
процеси псевдоним · екран · връх · хубаво · renice · напредък · strace · система · tmux · chsh · история · в · партида · Безплатно · който · dmesg · потребителски мод · п.с · chroot · xargs · tty · мизичко · lsof · vmstat · изчакване · стена · да · убиват · сън · sudo · неговата · време · groupadd · потребителски мод · групи · lshw · изключвам · рестартирайте · Спри се · изключване · passwd · lscpu · crontab · дата · bg · fg
Работа в мрежа netstat · пинг · трасиране · ip · ss · кой е · fail2ban · bmon · Вие · пръст на ръката · nmap · ftp · къдрица · wget · Кой · кой съм аз · В · iptables · ssh-keygen · ufw

СВЪРЗАНИ: Най-добрите Linux лаптопи за разработчици и ентусиасти

ПРОЧЕТЕТЕ СЛЕДВАЩО
  • › Какво представлява MIL-SPEC защита от изпускане?
  • › Как да намерите своя Spotify Wrapped 2021
  • & rsaquo; Кибер понеделник 2021: Най-добрите технологични сделки
  • › Компютърната папка е 40: Как Xerox Star създаде работния плот
  • › Функции срещу формули в Microsoft Excel: Каква е разликата?
  • › 5 уебсайта, които всеки потребител на Linux трябва да направи отметка
Снимка на профила на Дейв Маккей Дейв Маккей
Дейв Маккей за първи път използва компютри, когато перфорираната хартиена лента беше на мода и оттогава той програмира. След повече от 30 години в ИТ индустрията, той вече е технологичен журналист на пълен работен ден. По време на кариерата си той е работил като програмист на свободна практика, мениджър на международен екип за разработка на софтуер, ръководител на проекти за ИТ услуги и, последно, като служител по защита на данните. Неговото писане е публикувано от howtogeek.com, cloudsavvyit.com, tenterpriser.com и opensource.com. Дейв е евангелист на Linux и привърженик на отворен код.
Прочетете пълната биография

Интересни Статии