awkを使用してテーブルの空白を印刷する

awkを使用してテーブルの空白を印刷する

次のパターンがあります。

 No Type  Pid    Status  Cause Start Rstr  Err Sem Time Program          Cl  User         Action                    Table
-------------------------------------------------------------------------------------------------------------------------------
 0 DIA    10897 Wait          yes   no     0   0    0                                    NO_ACTION
 1 DIA    10903 Wait          yes   no     0   0    0                                    NO_ACTION
 2 DIA    10909 Wait          yes   no     0   0    0                                    NO_ACTION
 3 DIA    10916 Wait          yes   no     0   0    0                                    NO_ACTION
 4 DIA    10917 Wait          yes   no     0   0    0                                    NO_ACTION
 5 DIA     9061 Wait          yes   no     1   0    0                                    NO_ACTION
 6 DIA    10919 Wait          yes   no     0   0    0                                    NO_ACTION
 7 DIA    10920 Wait          yes   no     0   0    0                                    NO_ACTION
 8 UPD    10921 Wait          yes   no     0   0    0                                    NO_ACTION
 9 BTC    24376 Wait          yes   no     0   0    0                                    NO_ACTION
10 BTC    25651 Wait          yes   no     1   0    0                                    NO_ACTION
11 BTC    25361 Wait          yes   no     0   0    0                                    NO_ACTION
12 BTC    15201 Wait          yes   no     0   0    0                                    NO_ACTION
13 BTC     5241 Wait          yes   no     0   0    0                                    NO_ACTION
14 BTC    23572 Wait          yes   no     0   0    0                                    NO_ACTION
15 BTC     8603 Wait          yes   no     0   0    0                                    NO_ACTION
16 BTC     1418 Wait          yes   no     0   0    0                                    NO_ACTION
17 BTC    18127 Wait          yes   no     1   0    0                                    NO_ACTION
18 BTC    14780 Wait          yes   no     0   0    0                                    NO_ACTION
19 BTC    18234 Wait          yes   no     0   0    0                                    NO_ACTION
20 BTC    14856 Wait          yes   no     0   0    0                                    NO_ACTION
21 SPO    10934 Wait          yes   no     0   0    0                                    NO_ACTION
22 UP2    10939 Wait          yes   no     0   0    0                                    NO_ACTION

次に、awkを使用して以下のように変換します。

NO=0,Type=DIA,Pid=10897,Status=Wait,Cause=yes,Start=no,Rstr=0,Err=0,Sem=0,Time=NO_ACTION,Program=,Cl=,User=,Action=,Table=

上記は、すべての行に対して同じ1行の例です。

sedコマンドを使用して実行時に列ヘッダーを削除し、awkを使用するときに状態と理由の間のスペースを失い、理由から開始する必要がある値を書き込みます。

私たちは次のコマンドを使用しています。

awk 'BEGIN{FS=" ";OFS=","}{print "NO="$1,"Type="$2,"Pid="$3,"Status="$4,"Cause="$5,"Start="$6,"Rstr="$7,"Err="$8,"Sem="$9,"Time="$10,"Program="$11,"Cl="$12,"User="$13,"Action="$14,"Table="$15;}'

私たちは、出力が次のようになりたいと思います。

NO=0,Type=DIA,Pid=10897,Status=Wait,Cause=,Start=yes,Rstr=no,Err=0,Sem=0,Time=0,Program=,Cl=,User=,Action=NO_ACTION,Table=

これらの空のフィールドを追加するもう1つの点は、時にはいくつかの値があることです。

ベストアンサー1

おすすめ記事