Help us understand the problem. What is going on with this article?

xargsコマンドの備忘録

はじめに

基本的にManを読めばいいのですが、Linux(GNU)とmacOS(BSD系)で微妙にオプションが違ってハマったり、実際どうなるの? という用例が有ると嬉しいことがあるので、このページにまとめることにしました。

随時、加筆予定。

動作環境について

  • macOS ... 2020年5月現在はMojaveを使ってます。
  • Linux ... 同Ubuntu 18.04LTSを使うことが多いです。

オプション

Linux, macOSどちらでも使えるもの:

オプション 効果
-L {number} 引数を最大何行ずつ処理するか。後述
-n {number} 引数を最大何個処理するか指定する
-t 実行するコマンドを出力する

-L {number}

  • 何行ずつ処理するか
  • -n {number} だとスペースで分かれている単語も別と換算するけど、 -L だと引数が行単位になる。N行ずつ処理したい、という場合に使う

LinuxとmacOSで微妙にManの説明が違うのですが、同じ挙動のようで、よく読むとまあ同じことを書いているような気もします。
macOSのManだと -n と同時に指定はできないとあるのですが、LinuxのManでは書いてない。

使用例
# Linux & macOS
% seq 1 5 | xargs -L2 echo
1 2
3 4
5
% seq 1 5 | xargs -L2 echo | xargs -L2 echo
1 2 3 4
5

参考

progrhyme
Software Engineer. Was @key-amb
https://progrhy.me/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away