xcode - 如何使用 bash 查找文本字符串 --> "PROVISIONING_PROFILE[sdk=iphoneos*]"<--这个字符串有很多特殊字符

标签 xcode linux bash shell sed

正如标题所说,我想在文本中找到一个字符串,但是这个字符串很特殊。 文本可能是这样的:

{
PREBINDING = NO;
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "22B333C5-6D7A-4A76-81F2-12A045DAE44C";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = 2;
}

(另外,如果你是ios开发者,你可能知道文本示例来自XXX.xcodeproj/project.pbxproj)

我需要找到并删除这行文本:

"PROVISIONING_PROFILE[sdk=iphoneos*]" = "22B333C5-6D7A-4A76-81F2-12A045DAE44C";

在这一行中,它有引号 (")、方括号 ([ ])、星号 (*),也有空格 ( )。当我尝试使用下面的代码找到这一行时:

provisionStr="22B333C5-6D7A-4A76-81F2-12A045DAE44C"
fileDir=project.pbxproj

totalLineStr=`grep $provisionStr  $fileDir`
sed -i "" "s@$provisionStr@@" $fileDir

此 bash 代码不起作用。请帮助我,我才刚刚开始学习使用 bash。

最佳答案

sed 什么都不用替换:

s(for substitute)/string_to_match/new_string_or_empty_to_remove/g(for global/all document)

sed 's/\"PROVISIONING_PROFILE\[sdk=iphoneos\*\]"=\"22B333C5-6D7A-4A76-81F2-12A045DAE44C\";//g'

使用 \ 转义双引号、星号和括号

关于xcode - 如何使用 bash 查找文本字符串 --> "PROVISIONING_PROFILE[sdk=iphoneos*]"<--这个字符串有很多特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13775247/

相关文章:

xcode - Swift & NSTableView - 只需选择一行

linux - 如何在 awk 中运行 grep?

bash - 使用 bash 递归合并 yaml 配置文件

iphone - 如何创建一个可以水平滚动的UITableView?

objective-c - 将图像数组(包装在 NSData 中)上传到 iOS 中的服务器

linux - 搜索读取虚拟内核内存的隐藏模块?

linux - 最后一个 pid 进程 linux

java - 如何在 shell 脚本中运行 Picard(生物信息学)工具时消除 Java 异常错误?

bash - 在 Bash 脚本中的文件扩展名之前附加一个字符串

ios - Xcode 导航栏、标签栏、 TableView 标题不显示