Linux seq命令可以在眨眼之間生成數字列表。但是如何將這個功能付諸實際使用呢?我們將向您展示seq如何為您帶來便利。
乍一看,Linux seq命令似乎有些奇怪。它可以讓你快速生成數字序列,就這樣!不過,這裡的關鍵字是“快速”。過一會兒,您將看到這個小命令的執行速度有多快。
不管它們是如何生成的,一個數字列表有多有用?seq命令於1985年新增到第8版Unix中。從那以後它就一直在那裡,所以它必須做一些有價值的事情。
Unix的哲學思想是,它充滿了做一件事並且做得很好的小實用程式。這種哲學的中心原則之一是編寫接受其他程式輸入的程式。當然,這也意味著這些程式必鬚生成可以被其他程式用作輸入的輸出。
當seq命令與其他使用其輸出的命令一起使用時(透過管道或命令列擴充套件),seq命令就變成了自己的命令。
如果用一個數字作為命令列引數啟動seq,它將從1計數到該數字。然後在終端視窗中列印數字,每行一個數字,如下所示:
seq 6如果在命令列中鍵入兩個數字,第一個數字將是起始數字,第二個數字將是結束數字,如下所示:
seq 4 10可以透過包含第三個數字來設定步長。它位於開始和結束數字之間。我們鍵入以下命令,要求seq建立一個以6開頭、以48結尾的數字列表,並使用6的步驟:
seq 6 6 48我們還可以讓seq建立一個從最高到最低的數字列表。然而,要做到這一點,我們必須提供一個消極的步驟。
以下命令生成一個以6為單位從24到12計數的列表,因為我們將該步驟鍵入為負數:
seq 24 -6 12開始、結束和步數也可以是小數。如果其中任何一個數字是十進位制的,其他的也被視為十進位制。以下命令生成步長為0.2的數字列表:
seq 1 0.2 2seq的速度非常快,唯一的瓶頸是在終端視窗中鍵入命令所需的時間。為了測試它的速度,我們需要一個25萬個數字的列表。
我們鍵入以下命令,使用time命令檢視該過程需要多長時間才能完成:
time seq 250000結果顯示在列表下方。即使在我們中等功率的測試PC上,seq的速度也出奇的快。
整個列表在大約1/3秒內建立並寫入螢幕。如果我們將列表重定向到一個檔案中,我們甚至可以避免在終端視窗中鍵入的開銷。
為此,我們鍵入以下內容:
time seq 250000 > numbers.txt完成列表和建立檔案所需的時間現在約為1/7秒。
新的行字元是列表中每個數字之間顯示的預設字元。這就是為什麼它們會顯示為一個垂直列表,每個數字都在自己的行上。如果需要,可以提供另一個分隔符。
例如,假設您需要建立逗號分隔的列表、用冒號分隔的列表或任何其他標點符號或符號。分隔符實際上是一個字串,因此可以使用多個字元。
我們將使用-s(分隔符)選項。以下命令將生成逗號分隔的列表:
seq s, 6 6 36此命令將使用冒號(:)作為分隔符:
seq -s: 6 6 36此命令告訴seq使用兩個連字元(-)作為分隔符:
seq -s-- 6 6 36seq命令還支援C語言樣式的格式字串。這些允許您格式化輸出,而不僅僅是指定分隔符。要使用格式字串,請使用-f(format)選項。
以下命令告訴seq使用零將輸出填充為兩個字元:
seq -f "%02g" 6我們可以用我們喜歡的任何文字格式化字串,並將數字放在字串中的任意位置,如下所示:
seq -f "Number %02g in a C-like format string" 6設定零填充的最快方法是使用-w(等寬)選項。這告訴seq使用零來填充數字,因此它們的寬度都與最大的數字相同。
以下命令以100為單位從0到1000計數,所有數字都將用零填充:
seq -w 0 100 1000最長的數字需要四個字元,因此所有較窄的數字都用零填充到該寬度(即使0也填充到四個零)。
透過將分隔符設定為數學符號,並將列表匯入bc命令,我們可以計算該列表中的數字。
以下命令生成由星號(*)分隔的數字列表,從1開始,以6結束:
seq -s* 6如果我們將該列表輸入bc,它將使用星號(*)作為乘法符號來計算該列表:
seq -s* 6 | bc我們也可以用其他符號來做。下面的命令使用加號(+)建立一個添加了所有數字的列表:
seq -s+ 5我們鍵入以下內容將其匯入bc並評估列表:
seq -s+ 5 | bctouch命令更新檔案上的時間和日期戳。如果檔案不存在,觸控會建立它。我們可以使用帶有touch和seq的命令列擴充套件來建立一個主題命名但編號不同的檔案集合。
我們將建立一組10個具有相同基本名稱和不同編號的檔案(file-1.txt、file-2.txt等等)。我們鍵入以下內容:
touch $(seq -f "file-%g.txt" 1 10)然後,我們鍵入以下內容以檢查檔案:
ls file*我們可以在Bash指令碼中使用seq來控制小數的迴圈。
在編輯器中鍵入以下文字,然後將其另存為“迴圈.sh”:
#!/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記住seq也可以倒數;您可以用同樣的方法在迴圈中使用它。
seq的一個特點是沒有太多的學習曲線。它有一個令人耳目一新的簡短手冊頁,但您仍然可以以有趣的方式使用它。
因為我們經常需要快速建立具有實際大小的測試檔案,所以我們將seq與格式字串一起使用。然後重定向輸出以建立一個包含任意多行偽資料的檔案。
... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...
...許您在Android裝置上安裝誠實善良的Linux應用程式。下面是如何使用Termux應用程式。 ...
... 如何在windows10上安裝linux bash shell ...
要在Linux中重新命名檔案嗎?如果您知道如何在Windows、macOS或Chrome作業系統中完成這項工作,那麼您就知道如何在這裡完成這項工作。在大多數版本的Linux上,您只需右鍵單擊一個檔案並選擇Rename選項。 ...
想在Linux系統上新增使用者但不知道如何新增?在Linux上使用命令列介面管理使用者無疑是一項複雜的工作。而對於初學者來說,即使新增新使用者也是一場噩夢。 ...
...版本可以讓您對安全更新做出重要決定。我們將向您展示如何找到這些,無論您使用哪個發行版。 滾動和點釋放 你知道你在執行哪個版本的Linux嗎?你能找到核心版本嗎?Linux的滾動發行版,如Arch、Manjaro和openSUSE,經常使用自...
...複您過去執行的命令。一旦您瞭解了Linux history命令以及如何使用它,它就可以顯著地提高您的生產效率。 操縱歷史 正如喬治桑塔亞納(georgestantayana)的一句名言:“那些記不住過去的人註定要重蹈覆轍。”不幸的是,在Linux...
...安全的例子,透過默默無聞,這一概念是根本上的缺陷。如何訪問系統的祕密是安全的,因為只有特定組中的人知道它。但是一旦這個祕密被洩露,或者因為它被揭露,被觀察,被猜測,或者被解決了,你的安全就無效了。最好...