103.2基礎
names.txtとroles.txtは同じ行数で、対応する情報が同じ行にある。
各行をカンマで結合してname,roleの形式で表示する。
適切なコマンドはどれか。
× 不正解
pasteは複数入力の同じ行番号を横方向へ結合する。-dで出力時の区切り文字を指定できる。
詳細解説
正しい
paste -d, names.txt roles.txt2ファイルの対応行をカンマ区切りで横方向へ結合する。
正解。names.txtの1行目とroles.txtの1行目をカンマで結合し、以後も同様に処理する。
誤り
cat names.txt roles.txt1ファイル目の全行の後へ2ファイル目を続け、対応行を結合しない。
2ファイルの内容が上下に並び、名前と役割が同じ行にならない。
誤り
cut -d, -f1 names.txt roles.txt既存行からフィールドを抽出する処理で、別ファイルの行を結合しない。
単一行内のフィールド抽出であり、2ファイルの対応行を組み合わせない。
誤り
sort names.txt roles.txt両ファイルの行をまとめて並べ替え、対応関係を保持しない。
行の対応を基準にせず並べ替えるため、元の関連が崩れる。
実際に確かめる
一時的な検証環境で実行できる例です。
paste -d, <(printf 'alice
bob
') <(printf 'admin
viewer
')期待される結果
alice,admin
bob,viewer理解のポイント
- pasteは対応行を結合する
- -dで区切り文字を指定する
- catは縦方向に連結する
確認時の注意
- 確認環境: Bash 5.2 / GNU coreutils 9.x
基礎のおさらい
行数の違い
一方のファイルが先に終わると、その側は空のフィールドとして残りの行が処理される。
既定区切り
-dを省略した場合の既定区切りはタブである。
問題IDKP-103-040
確認環境Bash 5.2 / GNU coreutils 9.x
最終技術確認2026-08-12
誤り・権利侵害を報告