1. 程式人生 > 其它 >linux中通過awk進行文字的對齊格式化處理?awk printf左對齊?

linux中通過awk進行文字的對齊格式化處理?awk printf左對齊?

轉載自:https://www.cnblogs.com/chuanzhang053/p/9298409.html

需求描述:

  今天在對一個從excel檔案中粘出來的內容進行整理的時候,發現格式很亂,就想用awk工具格式化一下,在此記錄一下.

操作過程:

1.從excel中複製出來的內容

job_name job_group
syncCommStockJob dataSync
syncStoreChnlJob dataSync
syncOrderJob dataSync
syncReportStoreJob dataSync
hdfsScanJob report
orderSaleDailyJob report
jdzmdOrdersJob report
jdCanJob report

備註:就想要第一列是對齊的,同時第二列也是對齊的.

2.使用awk進行格式化(首先將上面的內容貼上到linux一個檔案中)

[root@testvm ~]# cat abc.txt | awk '{printf "%-30s%-15s\n",$1,$2}'  #%-30s表示輸出字串,寬度30位,左對齊.%-15s用來指定第二列的,左對齊,寬度15.兩個百分號之間可以沒有空格.使用\n對每一行的輸出加上換行符
job_name                      job_group      
syncCommStockJob              dataSync       
syncStoreChnlJob              dataSync       
syncOrderJob                  dataSync       
syncReportStoreJob            dataSync       
hdfsScanJob                   report         
orderSaleDailyJob             report         
jdzmdOrdersJob                report         
jdCanJob                      report

備註:使用printf進行輸出第一列和第二列.然後使用%s表示輸出字串,並且通過負號(-),數字表示的是左對齊輸出.這樣就達到了對格式進行整理.