如何使用awk设置列位置,让数据框第二列固定从第10位开始?
解决方法
可以用awk的printf格式化输出功能,轻松实现第二列从第10个位置开始对齐的需求:
awk '{printf "%-9s%s\n", $1, $2}' input.txt
代码说明
%-9s:将第一列($1)左对齐显示,占用9个字符宽度,不足部分用空格填充。第一列结束后正好到第9个字符位置,第二列自然从第10位开始。%s:原样输出第二列($2)。\n:每行结束后换行,保证输出格式规整。
示例验证
原始输入(input.txt):
123987 9876653 123456 6519849 234567 6516515 5648 6516578 123 7896511
运行上述awk命令后,输出结果:
123987 9876653 123456 6519849 234567 6516515 5648 6516578 123 7896511
扩展说明
如果数据包含更多列,只需在printf中追加对应格式即可。比如要让第三列从第20位开始,可写成:
awk '{printf "%-9s%-10s%s\n", $1, $2, $3}' input.txt
内容的提问来源于stack exchange,提问作者Hannah Willson
相关产品推荐
相关产品推荐

