sed:更改词序并替换
我正试图取代sed:更改词序并替换,sed,Sed,我正试图取代 randomtext{{XX icon}} 借 …在文件中,其中XX可以是2或3个小写字母的任意序列 我尝试用awk重新排列单词顺序,然后用sed替换“icon”和“ref-” awk '{print $2, $1}' …但由于第一个单词之前和第二个单词之后都没有空格,所以它弄乱了花括号 icon}} {{XX 使用sed实现这一点的最简单方法是什么 sed 's/{{\([a-z]\{2,3\}\)\sicon/{{ref-\1/' 这一行程序使用替换命令s/PAT
randomtext{{XX icon}}
借
…在文件中,其中XX可以是2或3个小写字母的任意序列
我尝试用awk重新排列单词顺序,然后用sed替换“icon”和“ref-”
awk '{print $2, $1}'
…但由于第一个单词之前和第二个单词之后都没有空格,所以它弄乱了花括号
icon}} {{XX
使用sed实现这一点的最简单方法是什么
sed 's/{{\([a-z]\{2,3\}\)\sicon/{{ref-\1/'
这一行程序使用替换命令
s/PATTERN/REPLACE/
{
匹配两个括号。\([a-z]{2,3\}\)
捕获匹配2或3个小写字母的模式。\s
匹配空白。图标
匹配文本字符串“icon”。然后我们用文本字符串{{ref-
和捕获的2个或3个字母的单词。这里有一个更通用的版本,使用哈希标记(
)作为正则表达式分隔符:
sed 's#{{\([^ ]*\) [^}]*#{{ref-\1#'
将正则表达式锚定在双大括号处{{
捕获空间之前的所有内容\([^]*\)
吃掉所有东西,直到最后一个大括号[^}]*
sed 's#{{\([^ ]*\) [^}]*#{{ref-\1#'