1.03.3標準
標準入力の各名前alice、bobについて、echo user=NAME enabledのNAME位置へ1件ずつ差し込む。
GNU xargsで適切な指定はどれか。
× 不正解
xargs -I REPLは入力行ごとにコマンドテンプレート内のREPLを置換し、引数末尾以外の位置にも項目を配置できる。
詳細解説
誤り
xargs echo user={} enabled-Iがないため{}は置換されず、入力項目は末尾へ追加される。
誤り。{}は通常文字列として残り、aliceはenabledの後ろへ追加される。
正しい
xargs -I{} echo user={} enabled{}を各入力行の内容へ置換し、指定位置へ差し込む。
正しい。-I{}がuser={}の{}をalice、bobへ置き換え、各行ごとにコマンドを実行する。
誤り
xargs -0 echo user={} enabledNUL区切りを有効にするだけで{}置換を行わない。
誤り。-0は区切り解釈だけで、テンプレート内の{}を置換する機能を有効にしない。
誤り
xargs -n0 echo user={} enabled-nは1回の最大引数数で、0は置換指定にならない。
誤り。-n0は有効な置換指定ではなく、-nは引数個数制御用である。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'alice\nbob\n' | xargs -I{} echo user={} enabled期待される結果
user=alice enabled
user=bob enabled理解のポイント
- -Iはreplace token
- 通常1入力行ごとに実行
- 入力を任意位置へ配置
確認時の注意
- 確認環境: GNU findutils xargs / 標準入力
基礎のおさらい
実行回数
-Iは論理入力行ごとの置換を行うため、既定のまとめ実行よりプロセス起動数が増えることがある。
シェル構文
xargsが直接起動するコマンドでは|や>をシェル構文として解釈しないため、必要ならsh -cの引数設計に注意する。
問題IDKL-101-479
確認環境GNU findutils xargs / 標準入力
最終技術確認2026-08-13
誤り・権利侵害を報告