ArangoDB値をbashスクリプトにエクスポートする

ArangoDB値をbashスクリプトにエクスポートする

与えられたarangoコレクション内のレコード/文書の数を数える必要があるbashスクリプトがあります。これは非常に簡単に見え、次のarangosh呼び出しを使用しました。

records=$(docker exec -it arango arangosh --javascript.execute scripts/getCount.js $collection --server.password '')

次に、次のスクリプトを実行します。

#!/usr/bin/arangosh --javascript.execute 

var collection = ARGUMENTS[0];
var doc = db[collection];

var c = doc.count();
print(c);

これはうまくいくようですが、echo $records正しい値を取得すると太字で表示されます。これは他の読み取り問題を引き起こすので、呼び出しをリダイレクトしてdocker exec次のcat -v出力を取得します。

^[[1m#####^[[0m^M

####は私が記録した値であり、正確です。 out ofarangoshまたは out of 値を正しく印刷するにはdocker exec?それとも私の値から隠されたANSI文字を削除する唯一の方法ですか?

修正する:

docker exec -it arango arangosh私はすぐにジャンプしてコマンドを試すことができました。db._collection('my_collection').count()これは、隠された文字が含まれていることを意味する太い値を返します(未定義arangoshcatため、100%確認できません)。

もしそうなら、問題はプレーンテキストとしてエクスポートできるのか、スクリプトがsed応答を受け取った後にこれらの文字を置き換える必要があるのか​​ということです。

答え1

それでも良い答えが欲しいのですが、次のことで必要なものを得ることができました。

imported=`docker exec -it arango arangosh --javascript.execute scripts/getRecords.js $collection --server.password '' | cat -v | sed 's/\(\^\[\[1m\)//g;s/\(\^\[\[0m^M\)//g'`

これはdockerの詳細な出力を代替sed項目として渡します。このスクリプトについて、私がこのスクリプトに提供するすべてのセットが同じ文字を持つことを望んでいることを考えると、これはトリックを実行する必要があります(非常に制限的です)。

関連情報