echo
Linuxで新しい行を生成するために使用されます。
echo -e '\n'
2行
echo -e '\n\n'
3行など。
例えば
user@linux:~$ echo
user@linux:~$ echo -e '\n'
user@linux:~$ echo -e '\n\n'
user@linux:~$
\n\n
を入力する代わりに、同様のものを使用できますか\n * 3
?
希望の出力
私はそれが3つの行を生成しないことを知っていますがecho -e '\n * 3'
、私が意味するものを理解したいと思います。
user@linux:~$ echo -e '\n * 3' # <== I hope you get what I mean
user@linux:~$
答え1
bash、ksh93、またはzshを使用している場合
printf '%.0s\n' {1..3}
3つの改行文字を生成します。拡張された{1..3}
次の幅がゼロの文字列と改行文字として出力されます。1 2 3
printf
答え2
POSIXソリューションが必要な場合は、以下を使用してください。
リング
明らかで見苦しいPOSIXループに加えて:
i=0; while [ "$((i+=1))" -le 7 ]; do echo; done
POSIX(携帯用)
他の(より短いが必ずしも高速ではない)ソリューションがあります。
(1) 空白を印刷して改行文字に変換します。
printf '%*s' 30 | tr ' ' '\n'
(2)または23行を取得します。
seq 23 | tr -dc '\n'
(3)awkを使用してください:
seq 23 | awk '{printf "\n"}'
(4) IFS がデフォルト値であると仮定します。
printf '%.0s\n' $(seq 23)
(5)sed
追加改行文字を追加します。改行文字が23個の場合は22を使用します。
printf '%0*d' 22 | sed 'y/0/\n/'
(6) 一部のシェルは、低い番号の配列要素をすべて自動的に生成します。
zsh -c 'a[33]=1; printf "%.0s\n" "${a[@]}"'
(7) いくつかの NUL バイトを取得します。
head -c 5 /dev/zero | tr '\0' '\n'
私たち全員が知っているように
以下は、より広く知られ、使用されているソリューションに追加されるものです。
(8)使用head
回数:
yes '' | head -n 23
(9)いいえPOSIX。一部のシェル(少なくともksh、bash、zsh)の場合:
printf '%.0s\n' {1..23}
その他の言語
もちろん、(いいえPOSIX)高級言語:
(10)真珠
perl -e 'print "\n" x 23'
perl -E 'say "\n" x 22'
(11)PHP
php -r 'echo str_repeat( "\n" , 3 );'
(12)Python
python -c 'print("\n" * 3)'
答え3
$ yes "" | head -30
30個の改行文字を提供します。
答え4
Pythonを使用することがオプションの場合は、次のコマンドが必要な方法で機能します。
python -c 'print("\n" * 3)'