使用bash和column命令行进行格式化

时间:2014-05-27 09:42:42

标签: bash awk sed

我有以下文件

100843      stars n30   2012-03-08  spartanico83
    stars n50   2009-11-28  babepy
    stars n05   2009-03-09  sandfox
    stars n20   2014-01-17  yeuce

我的目标是:

100843      stars n30   2012-03-08  spartanico83
            stars n50   2009-11-28  babepy
            stars n05   2009-03-09  sandfox
            stars n20   2014-01-17  yeuce

我尝试使用column -t作为命令行,但它给了我

100843     stars n30   2012-03-08  spartanico83
stars n50  2009-11-28  babepy
stars n05  2009-03-09  sandfox
stars n20  2014-01-17  yeuce

我是否应该同时使用awksed的组合?

由于

2 个答案:

答案 0 :(得分:2)

只需使用sed

即可完成
sed -r 's/^ +/            /'

如果行以空格开头,则用12个空格替换初始空格。

答案 1 :(得分:0)

添加一个标签为sed:

sed 's/^\([ ]*stars\)/\t\1/' input

或使用sed / column获得更强大的解决方案:

sed 's/^\([ \t]*stars\)/@\1/' input | column -t | sed 's/^@/ /'
相关问题