我使用下面的代码复制文件 valar.csv 的条目并在 columns 中输入值。
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 is not expected 如何修剪额外的 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