我正在尝试使用bash(在Mac OS 10.12上)编写命令,以过滤掉包含特殊字符的字符串的一部分:
要删除的字符串部分为:
,MYDOMAIN\sct_DesktopAdmin
我想要的例子是:
初始字符串:
domain admins,enterprise admins,MYDOMAIN\sct_DesktopAdmin,MYDOMAIN\sct_LocalAdmins
过滤后的最终字符串:
domain admins,enterprise admins,MYDOMAIN\sct_LocalAdmins
由于不同机器的初始字符串会有所不同,因此过滤器仅与该部分完全匹配非常重要。
我一直在尝试使用sed创建内容,但到目前为止,仅生成可以删除所有特殊字符的过滤器,而我对转义各个特殊字符的尝试均无效。
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用子字符串替换(用空字符串替换MYDOMAIN\sct_DesktopAdmin,
):
str="domain admins,enterprise admins,MYDOMAIN\sct_DesktopAdmin, MYDOMAIN\sct_LocalAdmins"
printf "${str/MYDOMAIN\\sct_DesktopAdmin, }\n"
编辑:感谢Toby Speight删除第二个/
,使用printf
代替echo
,并在末尾添加空格以符合OP编辑要求