このコマンドは列値を行に変換します。注文する:
awk -s1=" " '{S=S?S OFS s1 $0 s1:s1 $0 s1} END{print S}' OFS=, Input_file
例:
1
2
3
次に変換:
1, 2, 3
このコマンドを理解するのに役立つ人はいますか?
ベストアンサー1
次の構文を知る必要があります。
var = bool ? true_action : false_action
これは…条件式
それと
if (bool) { var = true_action } else { var = false_action }
だからこれ:
S=S?S OFS s1 $0 s1:s1 $0 s1
これと同じ:
if (S) { S=S OFS s1 $0 s1 } else { S = s1 $0 s1 }
if (S)
割り当てられている場合はTrueS
なので、コマンドが最初に呼び出されたときにのみFalseです。var1 var2 var3
文字列をs1
空白、OFS
現在の状態、,
およびS
以前に割り当てられた項目に関連付けるだけです。END{print S}
S
最後の行以降に印刷されます。