我有一个文件包含这样的行,像这样:大写一个单词,小写另一个单词:
"BAMBARA"{ "bambara" }
作为输出,我想要:
case(BAMBARA) { template("bambara") }.
到目前为止,我有sed/"$"/case($)/
但这根本不起作用。我该如何指定大写和小写字母?
答案 0 :(得分:2)
尝试:
sed 's/"\([^"]*\)"{ \("[^"]*"\) }/case(\1) { template(\2) }./'
答案 1 :(得分:2)
使用"
作为字段分隔符的awk命令(有点脏):
awk -F"\"" '{print "case("$2") { template(\""$4"\") }."}' inputFile
答案 2 :(得分:2)
一个简单的sed应该是
sed 's/\([a-z]\+\)/template(\1)/;s/"\([A-Z]\+\)"/case(\1) /'
请注意顺序很重要。如果您将其反转,则会将case
一词与小写字母完全匹配。
答案 3 :(得分:-1)
$ sed 's/"\([^"]*\)"\(.*\)\("[^"]*"\)/case(\1) \2template(\3)/' file
case(BAMBARA) { template("bambara") }