使用sed从变量中删除部分值

时间:2017-12-14 09:45:34

标签: awk sed

我从变量中得到以下值。

Sub FormatNormal() With ActiveDocument.Content.Find .ClearFormatting .Style = ActiveDocument.Styles("Normal") .Text = "" .Replacement.Text = "^&" .Replacement.Font.Size = 10 .Replacement.Font.Name = "Calibri" .Replacement.ClearFormatting .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute Replace:=wdReplaceAll End With End Sub

我需要修改上面的变量以从中删除& amp。所以,变量应该是这样的

manager&org.apache.catalina.filters.CSRF_NONCE=314C54E5671790D592A37C2C4A6B9AAF

请建议

3 个答案:

答案 0 :(得分:1)

sed 's/&amp;/\&;/g' <<<"yourString"

以上一行应该有所帮助。

例如:

kent$  sed 's/&amp;/\&;/g'<<< "foo&amp;bar&amp;blah"
foo&;bar&;blah

答案 1 :(得分:1)

我把你的变量放在一个文件中,并且能够用sed做你想做的事。确保你不删除任何其他只是放大器的引用的技巧是包括&amp;作为替代的一部分。

$ cat /tmp/file
manager&amp;org.apache.catalina.filters.CSRF_NONCE=314C54E5671790D592A37C2C4A6B9AAF

$ cat /tmp/file | sed 's/\&amp/\&/g'
manager&;org.apache.catalina.filters.CSRF_NONCE=314C54E5671790D592A37C2C4A6B9AAF

答案 2 :(得分:1)

在bash中,您可以使用参数扩展 - 模式替换来删除子字符串:

VAR='manager&amp;org.apache.catalina.filters.CSRF_NONCE=314C54E5671790D592A37C2C4A6B9AAF'
echo ${VAR/&amp}