以下のコードを使用してvalar.csvファイルのエントリをコピーし、列に値を入力しています。
awk '
NR==1 {print; next}
{$1=$1; print}
{$2 = $2 "D"; $3 = 3; $4 = ($4==1?2:1); $5 = $6 = " "; $7 = "Y"}
1' OFS='\t' valar.csv
ただし、ファイルに余分なスペースがあるかどうかを考慮して行として扱い、値を更新します。
余分なスペースを考慮しないようにコマンドを変更する方法を教えてください。
ファイルに余分なスペースがある場合、私の出力は次のようになります。最後の行には以下が表示されます。 (D 3 1 Yは予想されていません。追加のspcae問題をトリミングする方法?
SECURITY_ID TRADE_ID COUNTERPARTY_TYPE SIDE CUSTOMER_ACC_TYPE COMMISSION RELATED_PTY NON_RESIDENT
1350Z77M0 20200922011102686632 1 1 2 30 N N
1350Z77M0 20200922011102686632D 3 2 Y N
1350Z77S0 20200922011102786632 1 2 1 30 Y N
1350Z77S0 20200922011102786632D 3 1 Y N
D 3 1 Y
答え1
awk '
NR==1 {print; next}
/[^[:blank:]]/{print; $2 = $2 "D"; $3 = 3; $4 = ($4==1?2:1); $5 = $6 = " "; $7 = "Y"}
' OFS='\t' valar.csv