- 论坛徽章:
- 0
|
自己写的不对的脚本,抛砖引玉。
#!/bin/bash
fnw=`basename $1`_n.c
cp $1 $fnw
#简单的能用
# a.b ^ c
sed -i 's/\([a-zA-Z0-9]\{1,\}\)\.\([a-zA-Z0-9]\{1,\}\)\([ ]\{0,\}\)\^\([ ]\{0,\}\)\([a-zA-Z0-9]\{1,\}\)/pow(\1.\2,\3)/g' $fnw
# a ^ b
sed -i 's/\([a-zA-Z0-9]\{1,\}\)\([ ]\{0,\}\)\^\([ ]\{0,\}\)\([a-zA-Z0-9]\{1,\}\)/pow(\1,\4)/g' $fnw
#下面的都有问题,不能处理括号的配对
# (a+b)^n
sed -i 's/\([^a-zA-Z0-9]\{0,\}\)\((.*)\)\([\ ]\{0,\}\)\^\([ ]\{0,\}\)\([a-ZA-Z0-9]\)\([^a-zA-Z0-9]\{0,\}\)/\1pow(\2,\5)\6/g' $fnw
# a^(c+d)
sed -i 's/\([^a-zA-Z0-9]\{0,\}\)\([a-zA-Z0-9]\)\([\ ]\{0,\}\)\^\([ ]\{0,\}\)\((.*)\)\([^a-zA-Z0-9]\{0,\}\)/pow(\1,\4)\5/g' $fnw
# (a+b)^(c+d)
sed -i 's/\([,=+\-\*\/\^\&\|]\{1,\}\)\([ ]\{0,\}\)\((.*)\)\([ ]\{0,\}\)\^\([ ]\{0,\}\)\((.*)\)\([ ]\{0,\}\)\([,+\-\*\/\^\&\|]\{0,\}\)/\1pow(\3,\6)/g' $fnw |
|