v find を使用して表にテキストを送信する [閉じる]

v find を使用して表にテキストを送信する [閉じる]

次のファイルがあります

ファイル名: File1.txt テキストファイル 次の表の形式を取得できますか?

テーブル形式の要件

答え1

努力する:

awk '
!($3 in T1)     {SQ[++CNT] = $3
                }
                {T1[$3] = T1[$3] DL[$3] $1
                 T2[$3] = T2[$3] DL[$3] $2
                 DL[$3] = ","
                }
END             {for (i=1; i<=CNT; i++) printf "%s\t%s\t%s\t", T1[SQ[i]], T2[SQ[i]], SQ[i]
                print _
                }
' file
1,3 2,4 5s  5   6   16s 7   8   23s 

答え2

GNUの代替手段であるSledgehammerは、awk改行やスペースをフィールド区切り文字として使用し-F'[\n ]'、レコード区切り文字と見なされるRS=""すべての項目も避けるべきです。\n

awk -F'[\n ]' 'BEGIN{RS=""; OFS="\t"}
    {print  substr(FILENAME,1,length(FILENAME)-4), $1","$4, $2","$5, $3, $7, $8, $9, $10, $11, $12}
    ' *.txt

出力:

 File1   1,3     2,4     5s      5       6       16s     7       8       23s

関連情報