由于自动代码扫描查找,我必须从https://github.com/apache/cordova-plugin-file-transfer/blob/master/src/ios/CDVFileTransfer.m第838行到第850行删除自签名证书的功能。到目前为止,我已经按行号删除了这些行
sed -i '' -e '838,850d' CDVFileTransfer.m
如果更改之前的任何代码当然是危险的。
我正在寻找一个sed表达式,它从
开头的行(Line 838) 中删除所有内容// for self signed certificates
到只有右括号的第一行(Line 850)
}
类似
sed -i '' -e '^"// for self signed certificates",^"}"d' CDVFileTransfer.m
这可能吗?
我用正则表达式试试了我的运气:
sed -i '' -e '#"// for self signed certificates"*^{#' CDVFileTransfer.m
但它并不匹配任何东西。
答案 0 :(得分:1)
sed -e '/^\/\/ for self signed certificates/,/^}$/d'
或
sed -e '\@^// for self signed certificates@,/^}$/d' input
为了清晰起见,我省略了-i
,因为它并不适用于所有版本的sed。此外,sed是一个流编辑器。如果要编辑文件,则应使用ed
,sed
是-i
所基于的文件的编辑器。个人意见,{{1}}是一个可怕的想法:如果你想覆盖一个文件,使用shell重定向或写一个包装函数。