xargs는 한 번에 한 줄씩 명령 출력을 처리하는 데 좋다고 읽었습니다. 스크립트에 다음 줄이 있습니다.
./gen-data | awk '{printf $2 " "; printf $1=$2=$3=""; gsub (" ", "", $0);if(length($0) == 0){ print "0000"} else{print $0}}' | xargs -t -n2 -P1 bash -c 'datatojson "$@"' _
그것은 올바른 결과를 산출합니다. 그러나 gen 데이터는 1000 줄과 같은 것을 만들어냅니다.이 명령은 1000 줄 이후가 아니라 각 줄마다 실행해야합니다. (더 많은 정보를 얻기 위해 정기적으로 멈추고 있습니다.)
gen-data는 다음과 같습니다.
candump $interface &
while true; do
while read p; do
cansend $interface $(echo $p | awk 'NF>1{print $NF}');
done < <(shuf $indoc)
done
( cansend
데이터를 인터페이스로 보내고 candump
그 인터페이스에서 읽고 그것을 화면에 출력하지만, 나는 그다지 관련이 없다는 것을 내기한다). 어쨌든 candump
지속적으로 스트리밍 출력 인 것 같지만, awk
과 xargs
, 그것은 chunked된다. 내가 사용했기 때문일까? shuf
? 나는 그것이 인터페이스를 통과하고 다른 편에서 읽혀지기 때문에, shuf가 제공하는 것보다 덜 청크 될 것이라고 생각할 것이다.
@FelipeLema 방금 시도해 보았습니다.
—
user3475234
cat
대신에 shuf
그리고 그것은 똑같은 일을합니다. 그 루프에 어떻게 먹일 수 있는지 잘 모르겠다. 스크립팅에 익숙하지 않다.
shuf
? 이 스크립트는 사용하지 않고 작동합니까? (나는 그것을 안다. 할까요 , 그러나 그것을 배제 할 필요가있다)