Bash 使用通配符搜索替换Sed
您好,我对脚本编写有点陌生,有以下问题 我需要替换20069.1216.0Bash 使用通配符搜索替换Sed,bash,scripting,git-bash,Bash,Scripting,Git Bash,您好,我对脚本编写有点陌生,有以下问题 我需要替换20069.1216.0 HintPath..\packages\String.20069.1216.0\lib\net\Thoo.Tkc.dll/HintPath 如果将20069.1216.0替换为以2美元提供的任何内容,则此功能可以正常工作 `xargs sed -i 's/String.20.........0/String.'"${2}"'/g'` 我需要一种sed搜索**String.*\lib\net\“**的方法,其中**Str
HintPath..\packages\String.20069.1216.0\lib\net\Thoo.Tkc.dll/HintPath
如果将20069.1216.0替换为以2美元提供的任何内容,则此功能可以正常工作
`xargs sed -i 's/String.20.........0/String.'"${2}"'/g'`
我需要一种sed搜索**String.*\lib\net\“**
的方法,其中**String.*
和**\lib…**
之间的任何内容都是通配符
这就是我尝试过的
sed-i的/String.\/String.“${2}”'/g'
sed-i的/String.\\/String.“${2}”'/g'
sed-i的/String.\(.*)\/String.“${2}”/g'
我假设您在函数内调用sed
因此,请尝试以下代码:
#!/bin/bash
replace() {
echo 'HintPath..\packages\String.20069.1216.0\lib\net\Thoo.Tkc.dll/HintPath' |\
sed "s/String\.[0-9.]*/String\.${2}/"
}
replace dont_care filename
如果您的路径可能包含--SNAPSHOT
此解决方案应该适合您:
#!/bin/bash
replace() {
echo 'HintPath..\packages\String.20069.1216.0--SNAPSHOT\lib\net\Thoo.Tkc.dll/HintPath' |\
sed "s/String[0-9.]*\(--SNAPSHOT\)\{0,1\}/String\.${2}/"
}
replace dont_care filename
我假设您在函数中调用
sed
因此,请尝试以下代码:
#!/bin/bash
replace() {
echo 'HintPath..\packages\String.20069.1216.0\lib\net\Thoo.Tkc.dll/HintPath' |\
sed "s/String\.[0-9.]*/String\.${2}/"
}
replace dont_care filename
如果您的路径可能包含--SNAPSHOT
此解决方案应该适合您:
#!/bin/bash
replace() {
echo 'HintPath..\packages\String.20069.1216.0--SNAPSHOT\lib\net\Thoo.Tkc.dll/HintPath' |\
sed "s/String[0-9.]*\(--SNAPSHOT\)\{0,1\}/String\.${2}/"
}
replace dont_care filename
使用WinDoze\everywhere,但
Thoo.Tkc.dll/HintPath
。这是故意的吗?我使用bash编辑用.net编写的程序的文件,该路径与使用WinDoze\everywhere的路径类似,但Thoo.Tkc.dll/HintPath
。这是故意的吗?我用bash编辑用.net编写的程序的文件,该路径是一个类似的路径Hello如果有时它看起来像这个字符串怎么办?20069.1216.0--SNAPSHOT“我的搜索需要包括--SNAPSHOT并替换它,如果有时它看起来像这个字符串怎么办?20069.1216.0--SNAPSHOT”我的搜索需要包括--SNAPSHOT并替换它