使用awk命令格式化文本文件

帕瓦西

我正在使用此命令:

awk 'NR>1 {print $1"  "$2}' fort.75 > newfort.75

并获得输出为

     7  -2.2964292555E+000
     8 -2.3013363831E+000
     9 -2.3071951989E+000
     10 -2.3136811351E+000
     11 -2.3207311925E+000

但是所需的o / p是

      7 -2.2964292555E+000
      8 -2.3013363831E+000
      9 -2.3071951989E+000
     10 -2.3136811351E+000
     11 -2.3207311925E+000

第一个字段中的值应设置格式,以使它们都具有相同的宽度。同样,第二个字段应在每行的同一列中开始。

内德64

您可能意味着您希望在列中进行输出(尽管在示例中数据也有所不同)。如果是这样,请尝试以下操作:

awk 'NR>1 {print $1 "\t" $2}' fort.75 > newfort.75

这将用TAB字符分隔您的输出\t

另一种可能性是使用printfArchemar建议的方法:

awk 'NR>1 {printf("%4i %f\n",$1,$2);}' fort.75 > newfort.75

第一列的格式设置为(在这种情况下)4个字符的宽度-根据需要进行调整。该空格由空格“”(无双关)填充,并且不使用TAB。但是,浮点数也已重新格式化,因此请检查是否适合您。如果不是,则将第二列视为字符串:

awk 'NR>1 {printf("%4i %s\n",$1,$2);}' fort.75 > newfort.75

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章