1
我有它設置如下表中其數據的文本文件列,但用逗號分隔,例如:猛砸格式文本文件導入
姓名,年齡,FavColor,地址
鮑勃,18,藍,1史密斯街
朱莉,17,黃色,4約翰街
首先,我已經TR使用for循環,並將每個'列'及其所有值放入單獨的數組中。
eg /'nameArray'將包含bob,julie。
這是從我的實際腳本代碼,有12列,因此爲什麼C不應該大於12。
declare -A Array
for((c = 1; c <= 12; c++))
{
for((i = 1; i <= $total_lines; i++))
{
record=$(cat $FILE | awk -F "," 'NR=='$i'{print $'$c';exit}'| tr -d ,)
Array[$c,$i]=$record
}
}
在這裏,我再使用「的printf」功能格式化每個陣列和將它們打印爲列。與此問題是,我有超過3個數組,在我的實際代碼中,他們都在同一個'printf'行。我不喜歡,我知道這是一個愚蠢的做法。
for ((i = 1; i <= $total_lines; i++))
{
printf "%0s %-10s %-10s...etc \n" "${Array[1,$i]}" "${Array[2,$i]}" "${Array[3,$i]}" ...etc
}
但這不過給我所需要的輸出,見下圖:
我想弄清楚如何做到這一點並不需要大規模的打印語句的另一種方式。同樣,我第一次調用for循環時,出現'awk'錯誤。
任何意見,將不勝感激,我已經通過多個線程和帖子看,試圖找到一個合適的解決方案,但沒有找到有用的東西。
我不敢相信我爲相同的輸出做了所有的哈哈。唯一的問題是我得到的專欄太長。 – Lizzeiy
很久以前就回想起這個,對細節不太確定,也許手冊可能會幫到你。 – phoxis
錯誤:「輸入行的長度限制爲LINE_MAX(2048)個字節。」可能是問題。 – Lizzeiy