linux调整列的位置,linux下echo的时侯有没有办法在输出每个字段的时候把列的位置固定一下?...

你好,看情况5261应该是:

"字4102符" 与 "汉字" 占位宽度不一致导致的这种情况1653   //这里的"字符"指的是"字母,数字,下划线"这些,"汉字"就不用解释了

处理方法:

表头不用汉字,使用英文来表示,如:

应用目录: app_dir

大小: volumn或size

增长大小: inc_size   // increment_size的缩写

增长量: inc_percent

表头命令: echo "app_dir size inc_size inc_percent" | awk '{printf "%-20s%-20s%-20s%-20s\n", $1, $2, $3, $4}' >> tmp.txt

数据命令:echo "111 5M -4M +%400.00" | awk '{printf "%-20s%-20s%-20s%-20s\n", $1, $2, $3, $4}' >> tmp.txt

6570c951f3f5698e15587c46fb075011.png

2.表头还是使用汉字,但数据段中的宽度就要调整一下了:

表头命令:echo "应用目录 大小 增长大小 增长量" | awk '{printf "%-20s%-20s%-20s%-20s\n",$1, $2, $3, $4}' >> tmp.txt

数据命令:echo "111 5M -4M +%400.00" | awk '{printf "%-24s%-22s%-24s%-20s\n", $1, $2, $3, $4}' >> tmp.txt

39bfcc5859380be71a9934b511bfd3f1.png

命令解释:

a.其实主要就是将echo与awk命令使用管道符|连接起来,即awk使用echo回显的数据作为处理数据;

b.而awk处理数据时默认的分隔符是"空格";

c.printf是awk中的一条命令,全称应该是printformat,官文叫格式化输出,说白了printf命令作用就是我们可以自定义每个字段所占的[宽度是多少字符],数据在这个宽度范围内的[对齐方式]

d.先不详细的讲命令了,你看看能看明白不,不明白追问再给你详细说吧

哪不明白,可以追问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值