Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用bash和column命令行格式化_Bash_Awk_Sed - Fatal编程技术网

使用bash和column命令行格式化

使用bash和column命令行格式化,bash,awk,sed,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-

我有以下文件

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
我应该同时使用
awk
sed


谢谢

只需使用
sed

sed -r 's/^ +/            /'
如果该行以空格开头,请将初始空格替换为12个空格。

将一个标签放在sed上:

sed 's/^\([ ]*stars\)/\t\1/' input
或者使用sed/column获得更健壮的解决方案:

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

不需要组合,只需使用
awk
。我正在查看
awk
。但是,没有比这更简单的了吗?我这样问是因为我真的认为处理
的选项就足够了。可能有更简单的方法,但列似乎忽略了前导空格。事实上,Jotne。从我的文件复制粘贴到stackoverflow仪表板似乎改变了一些东西。。。如果我将文件的内容粘贴到cygwin环境中,Barmar的解决方案将起到一定的作用。抱歉,巴尔马。