Linux shell:使用AWK產生隨機數/隨機字串
有時候做測試,需要一些隨機數,awk中的rand()函式就可以產生隨機數
rand()說明如下:
rand()函式返回[0,1)之間的浮點數
int( n * rand() ),返回[0,n)之間的整數,也就是0~n-1之間的隨機數
int( n * rand() ) + 1,返回1-n之間的隨機數
注意,這裡的int()是一個函式,不是表示整形,所以一定要加上括號,它的作用是取數字的整數部分
示例1: 產生隨機數
隨機產生10個學生的成績,取值範圍0-100
[email protected]:~$ awk ' > BEGIN { > for (i = 1; i <= 10; i++) > print int( 101 * rand() ) > }' 57 7 64 27 39 18 70 8 60 71
示例2:產生10個隨機的字串:
[email protected]:~$ cat randword.awk
BEGIN {
WORDNUM = 10
for (i = 1; i <= WORDNUM; i++) {
print randword(20)
}
}
# randint(n): return a random integer number which is >= 1 and <= n
function randint(n) {
return int(n *rand()) + 1
}
# randlet(): return a random letter, which maybe upper, lower or number.
function randlet() {
return substr("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", randint(62), 1)
}
# randword(LEN): return a rand word with a length of LEN
function randword(LEN) {
randw=""
for( j = 1; j <= LEN; j++) {
randw=randw randlet()
}
return randw
}
[email protected]:~$ awk -f randword.awk
wxXe8fVGnC4ANvrQrYlp
k9uwRkTNBpTQCrGNdsL4
ANbgdugqUFigTkhptKZC
1yGQGz1CW8Q6J1KJuzf1
KRCwdjYhqoKfpiVFgqxC
asuwcoE2MN18JxFpyUrb
6MPydAXBFBDFJzBmq5JQ
6taOEQOjnwaH9bN47h6A
fMZywlOZcoSLOgqjvd9R
CUAPqkaeU9nLtv1xuslc
[email protected]:~$
這裡有必要介紹一下,裡面用到了三個自定義函式:
randint(n)返回一個1-n之間的隨機整數
randlet()返回a-zA-Z0-9當中隨機的一個字元,62即前面那個字串的長度
randword(LEN)則通過多次連線randlet()返回的隨機字元,返回一個隨機的字串,長度為LEN
參考資料:《The AWK Programming Language》
相關推薦
Linux shell:使用AWK產生隨機數/隨機字串
有時候做測試,需要一些隨機數,awk中的rand()函式就可以產生隨機數 rand()說明如下: rand()函式返回[0,1)之間的浮點數 int( n * rand() ),返回[0,n)之間的整數,也就是0~n-1之間的隨機數 int( n * rand() ) +
Linux Shell:文件目錄操作與實例
linux 文件 目錄 shell 本文介紹基礎的文件操作:創建,移動,編輯,刪除 文件和文件夾命令與案例:mkdir 創建目錄--創建兩個目錄tangym@ubuntu:~$ mkdir test2 test3--在test1下面創建一個新的目錄mydirtangym@ubuntu:~$ m
Linux Shell程式設計 awk命令
概述 awk是一種程式語言,用於在linux/unix下對文字和資料進行處理。資料可以來自標準輸入(stdin)、一個或多個檔案,或其它命令的輸出。它支援使用者自定義函式和動態正則表示式等先進功能,是linux/unix下的一個強大程式設計工具。它在命令列中使用,但更多是作為指令碼來使用。awk有很多內建的
linux shell:${var1##*:} ${bz1%,*}的意思
介紹下Shell中的${}、##和%%使用範例,本文給出了不同情況下得到的結果。 假設定義了一個變數為: 程式碼如下: file=/dir1/dir2/dir3/my.file.txt 可以用${ }分別替換得到不同的值: ${file#*/}:刪掉第一個 / 及其左邊的字串:dir1/dir2/d
shell生成指定範圍隨機數與字串
shell 生成指定範圍隨機數與隨機字串 1.使用系統的 $RANDOM 變數 [email protected]:~$ echo $RANDOM17617$RANDOM 的範圍是 [0, 32767] 如需要生成超過32767的隨機數,可以用以下方
[Linux]shell基礎教程1-變數、字串、陣列、註釋
原創文章,歡迎轉載。轉載請註明:轉載自 祥的部落格 原文連結:https://blog.csdn.net/humanking7/article/details/84504500 文章目錄 @[toc] 環境
LINUX Shell:複製資料夾的指令碼
#!/bin/sh# cpdir source_dir target_dir# author hjack# date:2006.3.25# copy dir#########variables define##########SOURCE_DIR=$1TARGET_DIR=$2CURRENT_DIR=`pwd
Linux命令:awk求和、平均值、最大最小值
1、求和 cat data|awk '{sum+=$1} END {print "Sum = ", sum}' 2、求平均 cat data|awk '{sum+=$1} END {print "Average = ", sum/NR}' 3、求最大值 cat data|aw
已知有十六支男子足球隊參加2008 北京奧運會。寫一個程式,把這16 支球隊隨機分為4 個組。 注:參賽球隊列表見附錄 注2:使用Math.random 來產生隨機數。(也可以使用其它方法) 2. 2
/** * Created by whp on 2018/7/30. */ public class Test { public static void main(String[] args) { String[] str={"象牙海岸","阿根廷","澳大利亞","塞爾
Linux Shell(一):建立指令碼,變數、字串、陣列、輸入輸出
0.建立一個Shell指令碼: vim abc.sh 1.首行宣告所使用的shell: #!/bin/bash #!是一個特殊的識別符號,其後,跟著解釋此指令碼的shell路徑。 bash只是shell的一種,還有很多其它shell,如:sh,csh,ksh,t
Linux下生成隨機數和隨機字串
1、生成長度為32的隨機字串 head -c 32 /dev/random | base64 該方式產生的隨機數效果比較好,但是,當不能產生隨機數時,它會阻塞在那裡,也就是為阻塞程式的執行 2、用/dev/urandom檔案產生 head -c 32 /
【轉】linux shell實現隨機數多種方法(date,random,uuid)
生成 需要 運算 one ont 數字 定義 支持 dev 在日常生活中,隨機數實際上經常遇到,想丟骰子,抓鬮,還有抽簽。呵呵,非常簡單就可以實現。那麽在做程序設計,真的要通過自己程序設計出隨機數那還真的不簡單了。現在很多都是操作系統內核會提供相應的api,這些原始參數是獲
java程序:產生隨機數
math random number answer temp import java.util.Scanner;public class MathGame {public static void main(String[] args){int number1=(int)( Math.ran
Linux shell 編程(五):數組
array shell loop 數組 數組是有序的元素序列 。若將有限個類型相同的變量的集合命名,那麽這個名稱為數組名。組成數組的各個變量稱為數組的分量,也稱為數組的元素,有時也稱為下標變量。用於區分數組的各個元素的數字編號稱為下標。數組是在程序設計中,為了處理方便, 把具有相同類型的若幹元素按
Linux shell 編程(六):運算
運算 shell let expr 運算 表達式 表達式包含在或(())或[]內, 算數表達式:(()) ((expression)) 這個表達式是根據算術計算的規則來計算的。相當於let expression。 條件計算表達式:[] [expression] 這是內置命令tes
1 Linux shell 編程(七):流程控制語句
shell if else Linux 流程控制語句 在shell中如果在終端輸入多個命令,如果以&分隔則將命令放入後臺執行,如果以;分隔,則表示一個命令集合。shell允許使用邏輯操作符&&和||來作為命令分隔符,他們分別時AND和OR. && 如果前
Linux shell 編程(八):循環結構
for while until shell bash 循環語句 在shell中的循環語句如下: for while unitl case select for/while/unitl 必須以done結尾 for循環 for循環用來遍歷數組(數據列表)或執行計算語句。 在shell中
Linux shell 腳本報錯:/bin/bash^M: bad interpreter: No such file or directory
詭異 參數 當前 use linu 信息 mar int 查看 今天遇到一個很詭異的問題,一直運行很正常的shell腳本失敗了,只是昨天增加了一個參數而已。 報錯信息: /bin/bash^M: bad interpreter: No such file or direc
linux shell 字串長度
本篇內容主要包括以下內容: 獲取字串長度的方法 各方法間效能比較 相關內容補充 說明:本篇內容為學習shell 程式設計(老男孩教程) 筆記,部分內容為相關視訊課程內容,補充部
Linux基礎:Shell指令碼入門
Shell 指令碼(shell script),是一種為 shell 編寫的指令碼程式,業界所說的 shell 通常都是指 shell 指令碼。(區分於shell,shell 和 shell script 是兩個不同的概念。Shell 是一個用 C 語言編寫的程式,它是使用者使用 Lin