簡體   English   中英

用awk格式化文件

[英]Formatting file with awk

好吧所以這里是這個下一個文件的問題,所以我試圖弄清楚如何格式化我創建的文件,其中包含我需要的所有信息,但我需要更改輸出看起來如此

貓文件

Jackson D. Bob 0001 book pizza apple 4.00 123as Filer J. Jake 0002 happy apple hat 4.00 124ab Metro K. Jim 0003 kindle pizza grape 4.00 125ac

好吧那就像文件中的什么,然后我需要將輸出格式化為這樣的東西

 # name           LS   item1  item2     item3   point  ad
 - -------------- ---- ------ --------  ------  -----  -----
 1 Jackson D. Bob 0001 book   pizza     apple   4.00   123as
 2 Filer J. Jake  0002 happy  apple     hat     4.00   124ab
 3 Metro K. Jim   0003 kindle pizza     grape   4.00   125ac

現在我用cat文件嘗試了一些不同的東西 awk'printf {}'命令,但它只是打印第一行並失敗或將嘗試打印第一個名稱,然后它下面的每個項目不是這個表樣式

現在記住項目,左邊的數字用循環生成,然后#Name LS打印到與破折號相同的位置

使用GNU awk進行多字符RS和RT:

$ awk -v RS='[0-9]{3}[[:alpha:]]{2}[[:blank:]]*' 'RT{print NR, $0 RT}' file
1 Jackson D. Bob 0001 book pizza apple 4.00 123as
2 Filer J. Jake 0002 happy apple hat 4.00 124ab
3 Metro K. Jim 0003 kindle pizza grape 4.00 125ac

就我而言

$ sed -r 's/[0-9]+[a-z]+ /&\n/g' data_on_a_single_line | column -t

Jackson  D.  Bob   0001  book    pizza  apple  4.00  123as
Filer    J.  Jake  0002  happy   apple  hat    4.00  124ab
Metro    K.  Jim   0003  kindle  pizza  grape  4.00  125ac

您可以根據字段長度添加魔術標題和下划線,也可以合並awk的前3個名稱字段

暫無
暫無

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

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