linux调整列的位置,linux下echo的时侯有没有办法在输出每个字段的时候把列的位置固定一下?...
摘自:https://blog.csdn.net/weixin_39943202/article/details/116868152
你好,看情况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
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
命令解释:
a.其实主要就是将echo与awk命令使用管道符|连接起来,即awk使用echo回显的数据作为处理数据;
b.而awk处理数据时默认的分隔符是"空格";
c.printf是awk中的一条命令,全称应该是printformat,官文叫格式化输出,说白了printf命令作用就是我们可以自定义每个字段所占的[宽度是多少字符],数据在这个宽度范围内的[对齐方式]
d.先不详细的讲命令了,你看看能看明白不,不明白追问再给你详细说吧
哪不明白,可以追问