ループ内に構築する配列からTSVファイルを作成しようとしています。私は各行の値をタブで区切るようにしていますが、配列の各要素を新しい行にエクスポートすることはできません。これは一例です:bash - 新しい行に各配列要素を出力する
OUTPUT=()
#header
OUTPUT+=$(printf "col_1\tcol_2\tcol_3")
param_1="bla"
param_2="tra"
param_3="meh"
for i in 1 .. 3
do
OUTPUT+=$(printf "$param_1\t$param_2\t$param_3")
done
#export
printf '%s\n' "${OUTPUT[@]}" > test.tsv
私も、私は、配列に挿入する各文字列の末尾に\n
を入れて試してみましたが、それはうまくいきませんでした。私が間違って何をしているのか?あなたはこの構文を使用する必要があり、アレイに追加する
ファイルで終わるために起こっている場合、中間アレイ層を持っている必要はありません、あなたは直接ファイルに要素を書き込むことができます。飛行中のファイルが表示されないようにするには、一時ファイルを使用して最後の最後のファイル名に移動します。 – karakfa
はい、今後スクリプトを使用する予定の場合、これはファイルに書き込む方法ではありません(ただし、可能ですが)。データの操作(およびファイルの読み書き)用に設計されたツールを習得するのに時間を費やすことをお勧めします。 [awk tutorial](http://grymoire.com/Unix/awk.html)をチェックするか、無制限のコントロールとシステム機能、OOなどが必要な場合は、あなたのために働くpythonまたはperlチュートリアルを見つけてください。がんばろう。 – shellter
@karakfa私は一時ファイルを使用することを避け、その中のすべての反復で書きます。なぜかバッファリングされていても、出力が半分のMBを超えない場合でも。私は最後に一度だけ出力することはできますか?あなたのコメントのために – Marius