Q1printfがechoと違う点はどれですか?
整形して出力する — printf
printfはechoと違い末尾に改行を付けないため \n を自分で書きます。%s/%d での値の差し込み、\t での列そろえ、複数行ファイルの作成を、ブラウザ端末で操作しながら学べます。
echo との違い — printf は改行を付けない
printfはechoと同じく文字列を出力するコマンドですが、echoと違って末尾に改行を自動で付けません。
改行が必要なところには\nを自分で書きます。
出力を思いどおりに組み立てられるため、複数行のファイルを作るときにも向いています。
printf 'hello\n'はhelloと改行を出します。
\nを省くと、次の出力が同じ行に続きます。
printf 'a\nb\nc\n' > fileのように書けば、3 行のファイルをそのまま作れます。
echoは末尾に改行を自動で付け、printfは\nを書いたぶんだけ改行します。echo hello # hello + 自動で改行
printf 'hello\n' # hello + 自分で書いた改行
printf 'a\nb\nc\n' > letters.txt # 3 行のファイルを作成
cat letters.txt # a / b / c の 3 行
| 書き方 | 末尾の改行 | 結果 |
|---|---|---|
echo 'hi' | 自動で付く | hi+改行 |
printf 'hi' | 付かない | hiだけ(改行なし) |
printf 'hi\n' | 付かない | \nを書いたのでhi+改行 |
Linux console
0 / 4 実行済み
Loading Linux Terminal...
値を差し込む・列をそろえる — %s %d \t
書式の中に%s(文字列)や%d(整数)を書くと、後ろに並べた値がその位置に差し込まれます。
printf 'name=%s\n' aliceはname=aliceと出力します。
echoの単純な連結より、決まった形に値をはめ込むのに向いています。
\tはタブを表し、列を揃えたいときに使います。
書式は後ろの値の数だけ繰り返し適用されます。
printf '%s\t%d\n' alice 30のように、見出しとデータを同じ書式で出すと列が揃います。
%sは文字列、%dは整数を差し込み、\tはタブで列を揃えます。printf 'name=%s\n' alice # name=alice
printf '%s\t%s\n' name age # 見出しをタブ区切りで
printf '%s\t%d\n' alice 30 # データ行をそろえて出力
| 記号 | 意味 | 例 → 出力 |
|---|---|---|
%s | 文字列を差し込む | printf '%s\n' hi → hi |
%d | 整数を差し込む | printf '%d\n' 42 → 42 |
\t | タブ(列そろえ) | printf 'a\tb\n' → a+タブ+b |
\n | 改行 | printf 'x\n' → x+改行 |
Linux console
0 / 3 実行済み
Loading Linux Terminal...
QUIZ
理解度チェック
まずは1問ずつ答えてみましょう。
Q2printf 'name=%s\n' aliceの出力はどれですか?
Q3\tは何を表しますか?