搜索
awk - linux文本操作:如何给以制表符分隔的数据文本首行添加列号
巴扎黑
巴扎黑 2017-04-17 13:08:51
[Linux讨论组]

用非手动方式。例如

abc    abc    123    123
asd    ahg    56     789
esh    huh    788    789

转化为:

1       2      3      4
abc    abc    123    123
asd    ahg    56     789
esh    huh    788    789
巴扎黑
巴扎黑

全部回复(2)
PHP中文网
line=$(head -1 sample.txt|awk '{for (i = 1; i < NF; i++){printf i "\t"} print NF}')
sed -i "1i$line" sample.txt
PHP中文网

sed '1 i1\t2\t3\t4' -i 文件名

擦,这种写法似乎和手工差不多啊

可以试试下面的思路:

head -1 文件名 | gawk '{print NF}' 显示列数
head -1 | sed 's/$/&\tn/g' -i 文件名 在行末添加制表符; n 表示添加第几列的列数

然后 在shell脚本中 判断列数 结合 for 循环 应该能解决

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号