【发布时间】:2015-12-01 10:16:31
【问题描述】:
我使用“grep”和“sed”管道从文件中提取了以下数据,现在我想对最后两个数字执行数学方程式,删除它们并用单个数字替换它们。
数学运算
Add the numbers together
divide by 2
multiply by 141
ROUNDUP to whole number
文件数据
AJ29 IO_0_VRN_10 77.234 78.011
AJ30 IO_L1P_T0_100M 89.886 90.789
AJ31 IO_L1N_T0_100S 101.388 102.406
AK29 IO_L2P_T0_101M 66.163 66.828
AL29 IO_L2N_T0_101S 63.626 64.266
所以以 AJ29 开头的行应该显示为:
AJ29 IO_0_VRN_10 10945
我可以将它放在 MS excel / Open Office calc 中并执行此操作,但如果可能的话,我希望避免使用 MS 并将其保存在单个 linux 脚本中。希望你能帮忙。到目前为止我的脚本如下,理想情况下我想添加更多管道来实现这一点。
grep IOB xc7vx690tffg1930.pkg | sed 's/pin//g' | sed 's/IOB_[A-Za-z0-9]*//g' | sed 's/ /-/g' | sed 's/\t//g' | sed 's/^[-]*//g' | sed 's/-/ /g' | sed 's/ [0-9][0-9] //g' | sed 's/[[:space:]]\+/,/g' | sed 's/,X[0-9A-Z]*,//g' | sed 's/,[0-9]*[A-Z],//g' | sed 's/N\.A\.,/,/g' | sed 's/,$//g' | sed 's/,/ /g'
【问题讨论】: