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을 생성하고 두 번째 줄은 파일의 두 기능을 선택합니다. 여태까지는 그런대로 잘됐다.

글쎄, 나는 첫 번째 행의 데이터를 저장하기 위해 임시 파일을 생성하고 싶지 않으며 두 번째 행에서 사용할 수 있도록 변수에 저장하고 싶지도 않습니다. 제가 찾은 해결 방법 xargs은 다음과 같습니다.

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

이 스크립트도 매우 잘 실행됩니다. 기본적으로 다음을 수행합니다.

  1. turfGeoJSON 출력에서 ​​1000개의 무작위 포인트를 생성하는 데 사용됩니다 .
  2. jqGeoJSON 출력을 한 줄로 압축하는 데 사용됩니다 .
  3. xargs두 번째 실행을 위한 인수와 함께 사용됩니다 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

관련 정보