shell:从源代码中提取字符串

时间:2012-03-08 23:10:48

标签: shell

是否有一种从代码中提取字符串的简单方法,即双引号的内容?

源:

a = "somestring"

结果:

somestring

2 个答案:

答案 0 :(得分:1)

简单的第一次尝试:

egrep -o '"([^"]*)"' sourcefile | sed -r 's/"(.*)"/\1/'

答案 1 :(得分:1)

Fred Foo的答案解决了本质问题。扩展为跨目录树进行报告,并在每条输出行上报告文件名,即使在同一行上出现多个字符串:

find . -name '*.java' | xargs egrep -o '"([^"]*)"' |\
awk '/:"/ {j=$0;sub(/:.*/,"",j);print;}!/:"/{print j ":" $0}' |\
sed 's/"\(.*\)"/\1/'