【发布时间】:2021-06-10 01:46:25
【问题描述】:
我正在尝试添加一个标题为“DATE”且值等于日期“DD-MM-YY”的列。我遇到的问题是我运行的代码将“DATE”和“DD-MM-YY”值添加到新行的第二列,而不是附加到数据中的现有行。
我尝试过同时使用 awk 和 sed,但都产生了相同的结果。下面是我当前的代码、我的原始数据、我的代码产生的数据以及我想要的数据集。
提前感谢您的帮助!
for y in 2021
do
for m in 02
do
for d in 01
do
awk -v d=$y-$m-$d -F"|" 'BEGIN {OFS = "|"} FNR==1{$(NF+1)="DATE"} FNR>1{$(NF+1)=d;} 1' Corporate_bond_mstr-$y-$m-$d.txt > check.txt
done
done
done
和
sed -e '1s/$/|DATE/' -e "2,\$s/$/|$y-$m-$d/" -e 's/\>|/ |/g' Corporate_bond_mstr-$y-$m-$d.txt > changed_$y-$m-$d.csv | column -s '|' -t
原始数据
FINRA_SCRTY_ID|CUSIP_ID|SYM_CD|CMPNY_NM|SUB_PRDCT_TYPE_CD
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|CORP
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|BOND
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|GOVT
运行代码后的数据
FINRA_SCRTY_ID|CUSIP_ID|SYM_CD|CMPNY_NM|SUB_PRDCT_TYPE_CD
|DATE
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|CORP
|DD-MM-YY
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|BOND
|DD-MM-YY
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|GOVT
|DD-MM-YY
所需数据
FINRA_SCRTY_ID|CUSIP_ID|SYM_CD|CMPNY_NM|SUB_PRDCT_TYPE_CD|DATE
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|CORP|DD-MM-YY
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|BOND|DD-MM-YY
3698282|000336AC1|ANTM3698282|AAG HLDG INC|CORP|GOVT|DD-MM-YY
【问题讨论】:
标签: unix awk sed data-cleaning