Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【シェルスクリプト】seqを使ってfor文の中で楽にインクリメント

最近知ったがseqという便利なコマンドがあるらしい

使い方は

% seq 1 10
1
2
3
4
5
6
7
8
9
10
みたいな感じ

Macでは

% seq 10 0
でも動くけど、別のLinuxではダメだった
そういうときは
% seq 10 -1 0
とかでOK

これとfor文を組み合わせて、

for i in `seq 0 5`
do
 echo $i
done
とかの使い方が便利

■ 過去記事 : 【シェルスクリプト】ファイルを1行ずつ読み込んで処理する


少しだけseqのオプションについてもまとめておく
Macのseqでは

% seq -h
usage: seq [-w] [-f format] [-s string] [-t string] [first [incr]] last
seq -wで桁を揃えるための0埋めをしてくれる
% seq -w 1 10 90
01
11
21
31
41
51
61
71
seq -sで区切り文字を指定できる
%seq -s- 1 10 90
1-11-21-31-41-51-61-71-81-
seq -fでC言語のprintf形式のフォーマットと同じものが使える
%dは使えないが、%fは使える、デフォルトは%g
%seq -f'%02f' 1 5

(2016/8/14 追記)
忘れるので追記します

% seq 1000000 1000000 5000000
1e+06
2e+06
3e+06
4e+06
5e+06
みたいに大きい数字だとなってしまうので、これを整数表示したいときは、上記のフォーマットを応用して、

% seq -f "%.0f" 1000000 1000000 5000000
1000000
2000000
3000000
4000000
5000000


ランキング参加中です

↓クリックしていただけると嬉しいです〜