turf-cli + xargs: 引数行が長すぎます。

turf-cli + xargs: 引数行が長すぎます。

私はそれを使用しています草 - クリ(とともにインストール可能sudo npm install -g turf-cli)は、一部の地理空間データを生成するために使用されます。turf-cli包装紙ですturf.js ライブラリこれにより、コマンドラインでその機能を使用できます。次のスクリプトがあるとしましょう。

turf random points 1000 {} > geojsonFile.json
turf sample geojsonFile.json 2 

この例では、最初の行は1000のランダムな点を含むGeoJSONを作成し、2行目はファイルの2つの機能を選択します。今まではそんなに良くなった。

まあ、私は最初の行のデータを保存するために一時ファイルを生成したくないし、2番目の行で使用できるように変数に保存したくありません。私が見つけた解決策xargsは次のとおりです。

turf random points 1000 {} | jq -c '' | xargs -0 -I {} turf sample {} 2

このスクリプトも非常にうまく動作します。デフォルトでは、次の操作を行います。

  1. turfGeoJSON出力から1000個のランダムポイントを生成するために使用されます。
  2. jqGeoJSON出力を1行に圧縮するために使用されます。
  3. xargs2番目の実行のための引数と一緒に使用されますturf(引数はturf許可されていないためstdin)。

これまでの私の例ではturf。それがすべてがうまくいく理由です。ただし、以下を実行してランダムなポイントを10000に増やそうとすると:

turf random points 10000 {} | jq -c '' | xargs -0 -I {} turf sample {} 2

それは私にエラーを返します:

xargs: argument line too long

xargs同様の問題を見たことがあります。これ解決策は| xargs -I {} -0 ......を使用することです。しかし、私はすでにこれらのパラメータを使用しており、私の場合は動作しません。パイプから巨大なGeoJSONを受信して​​も、その中で実行できるxargsように動作させる方法はありますか?turf

ベストアンサー1

おすすめ記事