2017-03-01 79 views
-2

我有一個文本文件的輸出如下。這是很長的文件,我只是在這裏複製一些行。格式化需要更改bash腳本中的文本文件

HP83904B74E6 
13569.06 
7705.509999999999 
HP4DC2EECAA8 
4175.1 
2604.13 

我想打印它像下面。

HP83904B74E6  13569.06  7705.509999999999 
HP4DC2EECAA8  4175.1  2604.13 

我試着通過live while循環讀取文件行並嘗試存儲變量的值,例如, variablename$i,這樣我就可以像variablename0那樣打印它,並且在每隔3行之後,我使用If語句來打印variablename0 variablename1 variablename2的值,但對我無效。

+0

只使用'paste'或'xargs' ... –

+0

你嘗試'awk'? –

+0

我試着通過live while循環讀取文件行並嘗試存儲變量的值,例如variablename $ i,這樣我就可以像變量名0一樣打印它,並且在每3行之後,我已經使用If語句來打印variablename0 variablename1 variablename2的值,但對我沒有效果。我只是在學習bash。 –

回答

1

使用pr

$ pr -a3t tmp.txt 
HP83904B74E6  13569.06  7705.509999999999 
HP4DC2EECAA8  4175.1   2604.13 
+0

嗨Chepner,感謝你的值得幫助,我從昨天開始嘗試這個,在做了這麼多的搜索後,我在這裏問一個問題,它真的幫助我。再次感謝。 –

0

我已使用while循環,並嘗試存儲變量如的值通過現場讀取文件行試圖variablename $ i,這樣我就可以像變量名0一樣打印它,並且在每3行之後,我已經使用If語句來打印variablename0 variablename1 variablename2的值,但對我沒有效果。我只是在學習bash。

while read -r a; do 
    read -r b; 
    read -r c; 
    echo "$a $b $c"; 
done < file 

你,

HP83904B74E6 13569.06 7705.509999999999 
HP4DC2EECAA8 4175.1 2604.13 
+0

感謝何塞的輸入,我也會試試這個,讓你知道結果。再次感謝 –