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

awk不打印表格格式的输出值,awk,Awk,以上awk在单行中打印所有值,并且需要在不同的行中打印输出。一行中的abc1 def1 ghi1 lmn1 opq1 rst1和另一行中的abc2 def2 ghi2 lmn2 opq2 rst2。每行的字数不固定(可以是3个字或多于3个字) input.txt: awk BEGIN{print "result1 result2 result3"} 'BEGIN{RS=","}{$1=$1}1' input.txt result1 result2 result3 abc1 def1

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

input.txt:

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
预期产出:

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
编辑:因为OP更改了输入文件,所以也更改了此处的代码

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

result1  result2  result3
abc1     def1     ghi1
abc2     def2     ghi2
输出如下

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-n3
$cat tst.awk
开始{RS=”“}
NR==1{

对于(i=1;i您将记录分隔符设置为逗号。文件中没有逗号!它每行打印3个字,字数不固定,应根据/t@spiderman,好的,看来你的样品现在不一样了,试着把样品放进去发帖时一次完成。请立即尝试我的编辑代码,让我知道这是否对您有帮助?它是否有效。在何处添加%s,以便将各个列的值与标题值对齐(result1 result2 result3)?@spiderman,我已添加了
OFS=“\t”
在代码中,它应该仅用制表符分隔。对于使用
%s
,我们应该使用
printf
.OFS=“\t”没有帮助。可能是printfawk-f tst.awk file | column-t-->以单行打印所有内容不提供您发布的示例输入。请查看我发布的答案以查看它的输出。您的输入与您告诉我们的不同,或者您没有运行我发布的脚本。如果没有看到这两个,我无法帮助您调试它,抱歉。
echo "result1 result2  result3";xargs -n 3 < Input_file | column -t
$ cat tst.awk
BEGIN { RS="" }
NR==1 {
    for (i=1; i<=NF; i++) {
        printf "result%d%s", i, (i<NF ? OFS : ORS)
    }
}
{
    $1 = $1
    print
}

$ awk -f tst.awk file | column -t
result1  result2  result3
abc1     def1     ghi1
abc2     def2     ghi2