我想用该fortawesome
字符串替换该字符串(如果它后面没有该/fontawesome-common-type
字符串)stephane
。
sed -e 's,"@fortawesome(/^fontawesome-common-types+),"@stephaneeybert\1,g'
sed: -e expression #1, char 65: invalid reference \1 on `s' command's RHS
输入示例:
"@fortawesome/fontawesome-common-types": "^0.2.32"
"name": "@fortawesome/pro-duotone-svg-icons",
及其预期的输出:
"@fortawesome/fontawesome-common-types": "^0.2.32"
"name": "@stephane/pro-duotone-svg-icons",
更新:我采用了使用中间变量的简单替代方法:
EXCLUDE=fontawesome-common-types
BUFFER=EkSkLUdE
cat package/package.json \
| sed -e "s,\"@$REPO_SOURCE/$EXCLUDE,\"@$BUFFER,g" \
| sed -e "s,\"@$REPO_SOURCE,\"@$REPO_DEST,g" \
| sed -e "s,\"@$BUFFER,\"@$REPO_SOURCE/$EXCLUDE,g" \
> package/package.out.json;
使用临时值:
exclude='fortawesome/fontawesome-common-type';
match='fortawesome';
repl='stephane';
tmpvar='EkSkLUdE';
sed "s@$exclude@$tmpvar@g;s@$match@$repl@g;s@$tmpvar@$exclude@g" file > newfile
的所有情况exclude
都替换为tmpvars
,然后将实际期望的match
es替换为repl
s,然后将tmpvar
s更改回exclude
s。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句