(22)【jot】シェルスクリプトコマンド活用紹介

jotコマンド

  • 連番を生成する
  • 文字列と組み合わせた連番を作成する
  • printf のフォーマットで出力する
  • 連番の範囲を指定して出力する
  • 乱数を出力する

jotコマンド概要

jotコマンドは、連番数字はもちろん、連番付きのアルファベットを生成したり、ランダムな数字を生成したりできます。似たコマンドに seq$RANDOM コマンドがあります。

jotコマンドの書式

jot [オプション]

jotコマンドの主なオプション

オプション 意味
-w [文字列] 文字列を指定する
-r 乱数を出力する

jotコマンド詳細説明

連番を作る

「jot ファイル名」で、ファイルの中身を並べ替えます。

さっそく連番を出力してみます。
まずは10個の連番を出力します。

$ jot 10 
1
2
3
4
5
6
7
8
9
10

seqコマンドではこうなります

$ seq 10
1
2
3
4
5
6
7
8
9
10

文字列と組み合わせた連番を作成する

文字列 abc に続けて10個の連番を作成します。

$ jot -w abc 10
abc1
abc2
abc3
abc4
abc5
abc6
abc7
abc8
abc9
abc10

次の項でも説明しますが、seqコマンドでも同様のことができます。

$ seq -f "%04g" 3
0001
0002
0003

seqコマンドでもprintfフォーマットで出力できますので、文字列と連結した連番の生成もできます。

$ seq -f "IMG%04g.jpg" 3
IMG0001.jpg
IMG0002.jpg
IMG0003.jpg

では、次の項ではjotコマンドでprintfのフォーマットで出力する方法を具体的に説明します。

printf のフォーマットで出力する

$ jot -w 'name%03d' 10
name001
name002
name003
name004
name005
name006
name007
name008
name009
name010

連番の範囲を指定して出力する

5からの連番を3つ出力します。

$ jot   -w 'name%03d' 3 5
name005
name006
name007

10からの連番を5つ出力します。

$ jot -w 'name%03d' 5 10
name010
name011
name012
name013
name014
bash-5.1$

乱数を出力する

1から10までの乱数を5つ出力します。
-r 5 は乱数を5つ出力することを示します。
1 10 は、1から10までの範囲でといういみとなります。

1から100までの範囲で乱数を5つ出力すると以下の通りになります。

jot -r 5 1 100
1
6
17
91
46

print文フォーマットで、1から100までの範囲で乱数を5つ出力してみます。

$ jot -w 'name%03d' -r 5 1 10
name008
name006
name007
name001
name006
ヒント
連番を作成する場合はseq、乱数を扱う場合は $RANDOMを使う場合が多いと思いますが、jotコマンドは、seq,$RANDOMを足し合わせて、同等それ以上の実行が可能です。

書籍の紹介

(23)【seq】シェルスクリプトコマンド活用紹介

(23)【seq】シェルスクリプトコマンド活用紹介

(21)【sort】シェルスクリプトコマンド活用紹介

(21)【sort】シェルスクリプトコマンド活用紹介