[問題] 數值排列

看板Linux作者 (科技柯基)時間9年前 (2017/02/09 15:02), 編輯推噓4(405)
留言9則, 5人參與, 最新討論串1/1
我有幾行數列如下 0 1511.9409 7306.7246 143 3.6 0 10 0 1511.9423 7306.7229 122 3.8 0 10 0 1511.94 7306.7252 150 3.5 0 10 << 這一行移位了 0 1511.9475 7306.7889 150 4.8 0 10 我的檔案數值 圖如下 http://imgur.com/a/rSGYD 我的問題是 我想要將每一欄的可以對齊,也就是每串數字的開頭可以跟下一行的數字 對齊,awk print 似乎可以解決我的問題? 不過試了一陣子還是無法解決。 想問一下板上的大大 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.20.176 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1486623729.A.EE1.html

02/09 16:27, , 1F
不用空格改用\t呢
02/09 16:27, 1F

02/09 17:03, , 2F
推Tab (\t)
02/09 17:03, 2F

02/09 17:05, , 3F
printf 可以用 "%7d" 指定印出來是七格的長度。
02/09 17:05, 3F

02/09 17:06, , 4F
man 3 printf 看 Flag characters 章節, awk 中也有
02/09 17:06, 4F

02/09 17:06, , 5F
printf 函數。
02/09 17:06, 5F

02/09 20:35, , 6F
應該是 "%-9d" 才對齊開頭, "%9d" 就對齊尾端了.
02/09 20:35, 6F

02/10 10:10, , 7F
謝謝大大們的幫忙,後來改用%-9d的形式,謝謝!!!
02/10 10:10, 7F

02/10 16:15, , 8F
如果想對齊小數點,可以先用 %.3d 統一指定精度 3 位。
02/10 16:15, 8F

02/10 18:46, , 9F
%.3d => 整數補齊三位數, 小數點以後就不見了. 3.6 => 003
02/10 18:46, 9F
文章代碼(AID): #1Od1FnxX (Linux)
文章代碼(AID): #1Od1FnxX (Linux)