変数を設定するためにサブシェルでcutとsedを実行すると、「パラメータリストが長すぎます」と表示されます。

変数を設定するためにサブシェルでcutとsedを実行すると、「パラメータリストが長すぎます」と表示されます。

私はPythonコードを含むbashスクリプトを書いた。私がすることは、ファイルを読み込み、次のbashコマンドを使用して切り取り、次にPythonコードで使用できるようにエクスポートすることです。

export BWA_compare=$(cut --output-delimiter='' -f1-3 ${BWA_AT}| sed 1d)

問題は私が得るということです

/bin/cut: Argument list too long
/bin/sed: Argument list too long

小さなファイルにはうまくいきます。輸出できる数量に制限はありますか?

答え1

パラメーターの数とパラメーターの組み合わせの長さには制限があります。これは均一な値ではありませんが、システムによって異なります。

通常、これらの問題はで解決できますxargs

ところが私が見るにはcut間違って使っているようです。cutパラメータにはファイルのみが必要です。${BWA_AT}ファイルリストが大きいですか? Pythonコードの場合は、次のものが必要です。

echo "${BWA_AT}" | cut

実際にファイルリストの場合は、次のものが必要です。

echo "${BWA_AT}" | xargs cut

必要なオプションはxargs区切り文字によって異なります。

関連情報