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表示输出字符串,并且通过负号(-),数字表示的是左对齐输出.这样就达到了对格式进行整理.

posted @ 2021-08-20 16:11  LightandDust  阅读(789)  评论(0)    收藏  举报