忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12
最近访问板块 发新帖
楼主: jeanwelly

[文本处理] linux awk中printf如何对齐打印中文字符,谢谢! [复制链接]

论坛徽章:
0
发表于 2017-09-07 15:26 |显示全部楼层
回复 5# moperyblue

感谢!!!

论坛徽章:
0
发表于 2017-09-07 16:02 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2017-09-07 16:47 编辑

我在为什么要学ps中说了,ps永远没有这样的烦恼,理由很简单ps是根据要求现做对齐

要求输入数据没有空格或tab,这些格式。
你可以用csv,或用脚本代码,去除这些东西。
a.csv
名称,数字,百分比
公司公司名有限公司,2669,0.7%
公司公司名有限公司有限公司公司,2450,0.6%
公司公司名有限公司有限公司有限公司,233,0.1%
公司公司名有限公司有限公司,123,0.0%

$a = import-csv a.csv
$a |format-table -AutoSize
即可,就这么简单。


==========================================
# 特殊需要

  1. #特殊需要
  2. $对齐代码 = @{Expression={$_.名称};Label="这里加名称别名";align="left"},
  3. @{Expression={$_.数字};align="right"},
  4. @{Expression={$_.百分比};align="right"}
  5. $a |format-table $对齐代码 -AutoSize
复制代码




特殊情况下的约束:
约束既然用大花括号括起来,那么就是代码,其实它是用哈希表,来说明csv每一列的约束。



format-table参数名作用值类型   
name显示字段名字符串
Alignment对齐left,right,center字符串
Expression过滤属性字符串或代码
width定义宽度数字
FormatString格式化字串


例子:
$a = @{Expression={$_.Name};Label="Process Name";width=25},
@{Expression={$_.ID};Label="Process ID";width=15},
@{Expression={$_.ID};Label="Process ID2";width=15;align="left"},
@{Expression={$_.ID};Label="Process ID3";width=15;align="center"}
Get-Process | Format-Table $a
get-date | Format-Table @{Name="abc"; Expression={(60-$_.Minute)/60}; FormatString="P"} -AutoSize
别再告诉我,format-table宽度不够!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP