shuf – 行をランダムに並べ替えて出力するコマンド

並び替え

shuf コマンドは、ファイルや標準入力の行をランダムに並べ替えて出力するためのコマンドです。
テストデータの作成や、ランダムなサンプリングを行うときに利用されます。

構文(Syntax)

shuf [オプション] [FILE]

主なオプション一覧

オプション説明使用例
-n N出力する行数を指定shuf -n 3 sample.txt
-i LO-HI数値の範囲を指定してランダムに出力shuf -i 1-100 -n 5
-o FILE結果をファイルに保存shuf -o output.txt sample.txt
-r行を繰り返して出力(リプレースあり)shuf -i 1-10 -n 20 -r

実行例

ファイルの行をランダムに並べ替え

# sample.txt
apple
banana
cherry
date

shuf sample.txt

出力例:

banana
apple
date
cherry

上位3行だけ取得

shuf -n 3 sample.txt

出力例:

date
banana
apple

数字1〜10をランダムに並べ替え

shuf -i 1-10

出力例:

7
3
10
1
5
...

数字1〜10から5つをランダム抽出

shuf -i 1-10 -n 5

出力例:

2
9
1
7
4

エラー例(存在しないファイルを指定)

shuf notfound.txt

出力例:

shuf: cannot open 'notfound.txt' for reading: No such file or directory

関連コマンド

  • sort : 行を昇順や降順に並べ替えるコマンド。
  • head : ファイルの先頭部分を表示するコマンド。
  • seq : 数値の連番を生成するコマンド。

備考

  • GNU coreutils の一部として提供されます。
  • BSD系(macOS など)には shuf が含まれていない場合があり、その場合は gshuf(coreutilsをインストール)を利用します。
  • 大きなファイルに対しても効率的に処理できますが、メモリに依存するため非常に大きいデータでは注意が必要です。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント