awk不打印表格格式的输出值

时间:2018-06-05 00:46:00

标签: awk

awk  BEGIN{print "result1 result2  result3"} 'BEGIN{RS=","}{$1=$1}1' input.txt

result1 result2  result3
abc1    def1     ghi1 lmn1 opq1 rst1 abc2    def2     ghi2 lmn2 opq2 rst2

以上awk打印单行中的所有值,需要在不同的行中打印输出。 abc1 def1 ghi1 lmn1 opq1 rst1在一行中,abc2 def2 ghi2 lmn2 opq2 rst2在另一行中。每行的单词数不固定(可能是3个单词或超过3个单词)

input.txt中:

abc1
def1
ghi1 lmn1 opq1 rst1

abc2
def2
ghi2 lmn2 opq2 rst2

预期产出:

result1 result2  result3
abc1    def1     ghi1 lmn1 opq1 rst1
abc2    def2     ghi2 lmn2 opq2 rst2

3 个答案:

答案 0 :(得分:1)

如果您的记录被一个或多个空行分隔,则可以执行此操作

$ awk -v RS= 'BEGIN {print "result1","result2","result3"} 
                    {$1=$1}1' file | column -t

result1  result2  result3
abc1     def1     ghi1
abc2     def2     ghi2

答案 1 :(得分:0)

编辑: 由于OP已更改了Input_file,因此也在此更改代码。

awk '
BEGIN{
  print "result1","result2","result3"}
NF{
  count++;val=val?val OFS $0:$0}
NF && count==3{
  print val;
  val=""}
END{
  if(val){
    print val}
}' OFS="\t"  Input_file

输出如下。

result1 result2 result3
abc1    def1    ghi1 lmn1 opq1 rst1
abc2    def2    ghi2 lmn2 opq2 rst2

以下也可以帮到你。

echo "result1 result2  result3";xargs -n 3 < Input_file | column -t

答案 2 :(得分:0)

Python 3.6.5