【问题标题】:editing a output file to be delimited with a semicolon and the input file is a CSV kornshell编辑用分号分隔的输出文件,输入文件是 CSV kornshell
【发布时间】:2016-04-16 08:40:57
【问题描述】:

我的输入文件是 CSV

AED,E  ,3.67295,20160105,20:10:00,UAE DIRHAM    
ATS,E  ,10.9814,20160105,20:10:00,AUSTRIAN SHILLINGS    
AUD,A  ,0.71525,20160105,20:10:00,AUSTRALIAN DOLLAR

我想读进去这样输出

EUR;1.127650;USD/EUR;EURO;Cash    
JPY;124.335000;JPY/USD;JAPANESE YEN;Cash    
GBP;1.538050;USD/GBP;BRITISH POUND;Cash

实际代码:

cat $FILE2 | while read a b c d e f
do
    echo $a $c $a/USD $f Cash \
    | awk -F, 'BEGIN { OFS =";" } {print $1, $2, $3, $4, $5}' >> my_ratesoutput.csv

输出:

Cash;;;;95 AED/USD UAE DIRHAM    
Cash;;;;14 ATS/USD AUSTRIAN SHILLINGS    
Cash;;;;25 AUD/USD AUSTRALIAN DOLLAR    
Cash;;;;/USD BARBADOS DOLLAR

【问题讨论】:

  • 您想要的输出与输入不匹配。
  • 我希望你只是想做文本转换而不是金融货币转换......请检查你的输入和输出,它真的想要你有什么和你期望什么?
  • 我只希望格式不匹配美元转换。3 个字符的货币代码";"美元价值";" 3字符货币代码"/USD"":"货币名称";""现金"。我希望文件的字段用分号分隔
  • 我不明白应该如何将AED,E ,3.67295,20160105,20:10:00,UAE DIRHAM 转换为EUR;1.127650;USD/EUR;EURO;Cash 。你什么时候想要xxx/EUR,什么时候想要EUR/xxx
  • 试试while IFS=, read a b c d e f; do ... done

标签: awk sed ksh aix


【解决方案1】:
export IFS=","
semico=';'
FILE=rates.csv
FILE2=rateswork.csv
echo $FILE
rm my_ratesoutput.csv
cp -p $FILE $FILE2

sed 1d $FILE2 > temp.csv

mv temp.csv $FILE2
echo "Currency;Spot Rate;Terms;Name;Curve" >>my_ratesoutput.csv

cat $FILE2 |while read a b c d e f
do
   echo $a$semico$c$semico$a/USD$semico$f$semicoCash >> my_ratesoutput.csv
done

【讨论】:

  • 这是您想要的解决方案(接受它以完成问题)还是仍有问题?
猜你喜欢
  • 1970-01-01
  • 2014-03-18
  • 2012-06-18
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多