シェルスクリプトで同じ文字を繰り返し出力する

ブログ
binary comment

同じ文字列を繰り返し出力する方法です。いろいろあるので使いやすいやつをどうぞ。

速度比較とかしたらいいんだろうけど面倒()

今回は「Fascode」という文字を1000行出します。

スポンサーリンク

forを使ってループ

一番簡単なやつです。

for i in {1..1000}; do
    echo "Fascode"
done

yesコマンドを使う

yesコマンドは同じ文字を無限に出力するコマンドです。

yes Fascode | head -n 1000

seqをsedで置き換え

似たような名前のコマンドを組み合わせます。

seq 1000 | sed "s/.*/Fascode/g"

seqをxargsでループ

xargsコマンドで標準入力の値の個数だけコマンドを実行します。

seq 1000 | xargs -In echo "Fascode"

whileと変数で回数を数える

変数を使う必要があって面倒。

count=0
while (( "${count}" != 1000 )); do
    echo "Fascode"
    count=$(( count + 1 ))
done

awkのforでループする

awkって結構難しい。

 echo | awk '{for (i = 1; i <= 1000; i++) print "Fascode";}

Perlを使う

Perlって全く知らないんですがなんか雰囲気で読める気がします←怒られそう

構文が他のいろんな言語に似てる気がする←怒られそう

perl -e 'for (my $count = 0; $count < 1000; $count++){ print "Fascode\n"; }'

Pythonを使う

他言語を使い始めたら身もふたもないですね

python << "EOF"
for i in range(1000):
    print("Fascode")
EOF

最後に

一番わかりやすいのはforコマンドなんでしょうけど、個人的にはyesコマンドが好きです。

前回のシェルスクリプトの記事↓

https://blog.fascode.net/2021/04/20/parse-args-bash/

このブログを書いた方のTwitter↓

https://twitter.com/hayao0819

コメント

タイトルとURLをコピーしました