bashやzshなどのシェルにおいて、xargs
コマンドは知ってると便利だけど知らない人にとってはよくわからないコマンドです。
このエントリでは、普段私がよく使うxargs
コマンドの使い方を紹介します。
大量のIDが行ごとに記載されたファイルがあるとします(説明のために30個にしています)。
$ wc -l ids.txt
30 ids.txt
$ head -n 3 ids.txt
1
2
3
$ tail -n 3 ids.txt
28
29
30
これらのIDを、例えばCSV出力やAPIリクエストパラメータのために、10個ずつカンマ区切りにしたいとします。
そんなときはxargs -n
を使うと便利です。
出力をxargs -n N
にパイプすると、N個の引数として指定したコマンドに渡すことができます。
# 指定した数の引数として任意のコマンドに渡せる
$ cat ids.txt | xargs -n 10 echo
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
あとは、空白をカンマに置換してあげればOKです。
$ cat ids.txt | xargs -n 10 echo | sed -e 's/ /,/g'
1,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20
21,22,23,24,25,26,27,28,29,30
コメントを送る
コメントはブログオーナーのみ閲覧できます