正则表达式 – 区分大小写的替换已知单词与sed
发布时间:2020-12-13 21:54:14 所属栏目:百科 来源:网络整理
导读:我需要用sed替换一组已知的单词,但我必须保持原始单词的区分大小写.例如,“Abc”替换为“Def”,但“abc”替换为“def”.只有单词的第一个字母可以有所不同(因此不允许使用aBC或abC单词). 我知道如何使用每个单词2个正则表达式来完成此操作,但是每个单词只能
我需要用sed替换一组已知的单词,但我必须保持原始单词的区分大小写.例如,“Abc”替换为“Def”,但“abc”替换为“def”.只有单词的第一个字母可以有所不同(因此不允许使用aBC或abC单词).
我知道如何使用每个单词2个正则表达式来完成此操作,但是每个单词只能使用1个正则表达式吗?
您可以编写sed脚本的脚本.假设一个单词对的文件:
$cat words.dat apple pecan banana walnut cherry almond 和一个文本文件: $cat textfile.txt apple banana cherry I would like an apple pie. Cherry pies are good,too. What about bananas? Bananas are full of potassium. 你可以做: awk '{print "s/" tolower($1) "/" tolower($2) "/g;s/" toupper(substr($1,1,1)) tolower(substr($1,2)) "/" toupper(substr($2,1)) tolower(substr($2,2)) "/g"}' words.dat > sedscript.sed sed脚本: $cat sedscript.sed s/apple/pecan/g;s/Apple/Pecan/g s/banana/walnut/g;s/Banana/Walnut/g s/cherry/almond/g;s/Cherry/Almond/g 然后: $sed -f sedscript.sed textfile.txt pecan walnut almond I would like an pecan pie. Almond pies are good,too. What about walnuts? Walnuts are full of potassium. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |