Skip to content

Instantly share code, notes, and snippets.

@ethanfu
Last active December 17, 2015 14:39
Show Gist options
  • Save ethanfu/5626004 to your computer and use it in GitHub Desktop.
Save ethanfu/5626004 to your computer and use it in GitHub Desktop.
场景是这样的很多jsp文件中有writeTable的方法,这个方法其中有两个参数,需要把第二个参数替换下,例如:writeTableTop('<fmt:message key="orderlist"/>','<venus:base/>/'); 其中第一个参数是变量,每个调用的可能是不一致的,但是第二个<venus:base/>都是完全一样的,不过在整个页面中<venus:base/>缺不是唯一的。 我的思路就是利用双重for循环,先找到writeTable的文件,然后把在这些文件中把行号打印出来,这样就在相应的文件替换相应行号的那个字符串就可以了,主要利用了<venus:base/〉页面不唯一,但是本行内是唯一的特点。测试数据页面可以参照:https://gist.github.com…
for f in `find . -type f -name "*.jsp" | xargs grep -rl writeTable`; do
for l in `grep -n writeTable ${f} | awk -F: '{print $1}'`; do
sed -e "${l}s/<venus:base\/>/<venus:base\/>\/themes\/<venus:theme\/>\//" $f
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment