103.4標準
標準入力の4項目a、b、c、dをxargsへ渡す。
echoを1回につき最大2項目で実行し、合計2行を表示する。
適切なコマンド列はどれか。
× 不正解
xargs -n Nは1回のコマンド実行へ渡す入力由来の引数を最大N個に制限する。
詳細解説
誤り
printf 'a
b
c
d
' | xargs -L 2 echo入力の論理行を2行ずつ扱う指定で、今回は動くが要件の引数個数を直接指定しない。
今回の形では同じ結果でも、制御軸が入力行数である。
誤り
printf 'a
b
c
d
' | xargs -P 2 echo最大並列数を指定し、1回の引数個数を2にしない。
並列数であり引数数を制限しない。
正しい
printf 'a
b
c
d
' | xargs -n 2 echo-n 2で各実行へ渡す入力由来の引数を最大2個にする。
正解。a bとc dの2回へ分ける。
誤り
printf 'a
b
c
d
' | xargs -I 2 echo2という文字列を置換記号にし、引数件数の制御にはならない。
置換記号を定義する指定である。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'a
b
c
d
' | xargs -n 2 echo期待される結果
a b
c d理解のポイント
- -nは最大引数数
- 必要なら複数回実行
- -Pは並列数
確認時の注意
- 確認環境: GNU findutils 4.x
基礎のおさらい
最後の実行
入力項目数がNの倍数でなければ、最後の実行だけN未満の引数になる。
組合せ
-nと-Pを組み合わせ、各実行の引数数と並列数を別々に制御できる。
問題IDKP-103-074
確認環境GNU findutils 4.x
最終技術確認2026-08-12
誤り・権利侵害を報告