ユーザーがテキストを入力できるようにし、同じテキストを複数行で出力するスクリプトを作成したいと思います。
例:
入力する:
Hi Jack,
how are you?
出力:
0001: Hi Jack,
0002: how are you?
答え1
簡単な解決策read
:
I=0; while read -r; do ((I++)); echo "$I: $REPLY"; done< test.txt;
ここでtest.txtをスクリプトパラメータに変更できます。
bash変数を使用したくない場合は、次のようにしますREPLY
。
I=0; while read -r LINE; do ((I++)); echo "$I: $LINE"; done< test.txt;
または「LINE」に代わるもの
答え2
出力をパイプできます。nl
はい
ls /etc | head | nl --number-separator=$':\t' --number-format=rz --number-width=4
0001: alternatives
0002: bash.bash_logout
0003: bash.bashrc
0004: bash_completion.d
0005: csh.cshrc
0006: csh.login
0007: dbus-1
0008: defaults
0009: drirc
0010: fonts
:
入力テキストでコロン()を空白で区切るには、--number-separatorパラメータをからに変更し$':\t'
ます': '
。