ログイン端末に役立つ情報を提供するために.bashrc
ファイルを作成していて、calコマンド(ナイスコマンド)を実行するように指示しているとします。 .bashrc
「ウェルカムメッセージ」の残りのフォーマットに一致するように、作成されたカレンダーを右にシフトするにはどうすればよいですか?
cal | sed 's/^/ /'
cal |
:calの出力をパイプに…sed 's/^/ /'
sed。行の始まり^
を検索し、スペースで置き換えます。ここでスペースの数を変更して、必要なフォーマットに一致させることができます。cal
から当日のハイライトを保持するには、パイプに「色」(ハイライト)を出力するように指示する必要があります。 man cal
から
--color [when]
Colorize output. The when can be never, auto, or always. Never will turn off coloriz‐
ing in all situations. Auto is default, and it will make colorizing to be in use if
output is done to terminal. Always will allow colors to be outputed when cal outputs
to pipe, or is called from a script.
N.B.マニュアルにタイプミスがあるようです。機能させるには=
が必要でした。したがって、最後のコマンドは
cal --color=always | sed 's/^/ /'
paste
の場合:
cal | paste /dev/null -
cal | nl -bn
...nl
は常に、入力行に追加するインデントと等しくなるように、番号のない入力行をインデントするため、機能します。デフォルトでは、nl
は入力の-h
eaderまたは-f
ooterセクションに番号を付けず、-b
ody行のみに番号を付けます。 n
otに-b
ody行の番号を付けるように指示すると、番号はまったく付けられず、すべての入力行にインデントが挿入されるだけです。
-w
idthおよび-s
eparatorスイッチを使用して、インデントのサイズを調整します。
cal; cal | nl -bn
December 2015
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
December 2015
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
もあります:
cal | pr -to[num]
...ここで[num]
は、各行の先頭に挿入するスペースの数です。 pr
は通常pageごとに66行を出力しますが、-t
はヘッダー/フッターの挿入を省略し、入力を出力に出力するように指示します。次に、-o
ffsetマージンスイッチを使用して、各出力行の先頭の[num]
で要求された数のスペースを挿入します。
cal; cal | pr -to10
December 2015
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
December 2015
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
ex
を使用した例を次に示します。
ex +"%norm 20I " +%p -scq! <(cal)
20
を必要な数のスペースに変更します。 "%norm 20I "
を使用すると、多くのスペースを置換して繰り返すよりも効率的です-"%s/^/ /"
。