簡體   English   中英

bash-在新行上輸出每個數組元素

[英]bash - output each array element on new line

我試圖從我在循環內構建的數組創建TSV文件。 我確實將每一行的值都制表符分隔開,但是我無法在新行上導出數組的每個元素。 這是一個例子:

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放在要插入數組的每個字符串的末尾,但沒有用。 知道我在做什么錯嗎? 謝謝

要追加到數組,應使用以下語法:

array+=(content)

同樣,也不需要使用printf附加靜態文本。

這是一個工作腳本:

OUTPUT=()
#header
OUTPUT+=("col_1\tcol_2\tcol_3")

param_1="bla"
param_2="tra"
param_3="meh"

for i in {1..3}
do
    OUTPUT+=("$param_1\t$param_2\t$param_3")
done
#export
printf '%b\n' "${OUTPUT[@]}" > test.tsv

請注意在printf使用%b ,以便正確解釋轉義序列。

輸出:

cat test.tsv

col_1   col_2   col_3
bla     tra     meh
bla     tra     meh
bla     tra     meh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM