制表符间隔数据到填充列
正在寻找一个列格式化脚本,我有一种感觉这可能是一个单行 awk。 理想情况下,我只需要一个小的 shell 脚本。
数据是制表符分隔的,每行中的每个单元格的长度都是可变的,当然,其中可能有空格。
所以我们有这样的东西
dasj dhsahdwe dhasdhajks ewqhehwq dsajkdhas e dward das dsaw das daswf fjdk ewf jken dsajkw dskdw hklt ewq vn1 daskcn daskw
应该最终是这样的:
dasj dhsahdwe dhasdhajks ewqhehwq dsajkdhas e dward das dsaw das daswf fjdk ewf jken dsajkw dskdw hklt ewq vn1 daskcn daskw
理想情况下,能够调整每个之间的硬间隔量。 如果它逐列查看就更好了,因此前导短单元格不会全部获得相同的正确填充。
不理想:
1 dhsahdwe dhasdhajks ewqhehwq dsajkdhas 2 das dsaw das daswf 3 ewf jken dsajkw dskdw 4 ewq vn1 daskcn daskw
理想:
1 dhsahdwe dhasdhajks ewqhehwq dsajkdhas 2 das dsaw das daswf 3 ewf jken dsajkw dskdw 4 ewq vn1 daskcn daskw
Looking for a column formatting script, I have a feeling this could be a one line awk. Ideally, a small shell script is all I am after.
The data is tab separated, each cell in each row is of variable length, and of course, may have spaces in it.
So we have something like this
dasj dhsahdwe dhasdhajks ewqhehwq dsajkdhas e dward das dsaw das daswf fjdk ewf jken dsajkw dskdw hklt ewq vn1 daskcn daskw
Should end up something like this:
dasj dhsahdwe dhasdhajks ewqhehwq dsajkdhas e dward das dsaw das daswf fjdk ewf jken dsajkw dskdw hklt ewq vn1 daskcn daskw
Ideally, being able to adjust the amount of hard spaced between each one. Even better if it looks on a column by column basis, so leading short cells do not all get the same right padding.
Not ideal:
1 dhsahdwe dhasdhajks ewqhehwq dsajkdhas 2 das dsaw das daswf 3 ewf jken dsajkw dskdw 4 ewq vn1 daskcn daskw
Ideal:
1 dhsahdwe dhasdhajks ewqhehwq dsajkdhas 2 das dsaw das daswf 3 ewf jken dsajkw dskdw 4 ewq vn1 daskcn daskw
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您使用的是 BSD 派生操作系统(包括 Mac OS X),column(1) 及其 -t 选项可能会执行您想要的操作:
If you're on a BSD-derived OS (including Mac OS X), column(1) and its -t option might do what you want:
在未混淆的 Perl 中:
In un-obsfucated Perl:
干得好。 用“gawk”测试。
Here you go. Tested with "gawk".