【问题标题】:Adding column with header to pipe-delimited file using awk or sed使用 awk 或 sed 将带有标题的列添加到以管道分隔的文件
【发布时间】: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


    【解决方案1】:

    使用 GNU sed 这将产生所需的数据:

    y=YY m=MM d=DD
    sed -e '1s/[ ]*$/|DATE/' \
        -e '2,$s/[ ]*$/|'"$d-$m-$y"'/' data
    

    也许column 命令在欺骗你;尝试不运行。

    【讨论】:

    • 感谢您的评论,但即使没有列命令,我也会得到相同的结果。我是一个相当新手的用户,我一直在努力解决这个问题,但一直很麻烦。
    【解决方案2】:

    我需要去掉文本文件中的回车,代码才能正确运行。

    sed -e 's/[\r\n]//g' Corporate_bond_mstr-$y-$m-$d.txt > chg1.txt
    sed -e '0,/|CNVRB_FL/s//|CNVRB_FL| /' chg1.txt > chg.txt
    sed -e '1s/$/DATE/' -e "2,$s/$/|$y-$m-$d/" -e 's/>|/ |/g' chg.txt > Corporate_bond_mstr- $y-$m-$d.txt

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 2013-07-05
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多