使用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的解决方案将起到一定的作用。抱歉,巴尔马。