使用 SED 在 XML 标签之间提取值
- 作者: 那晚越女说我?
- 来源: 51数据库
- 2022-10-20
问题描述
我从服务器接收以下格式的数据:
I am receiving data from a server in the following format:
gin</type><sessionId>1601</sessionId><directory><default>DepthOfBook</default><study type="DepthOfBook"/
如何从该字符串中提取值 1601?我一直在尝试以下方法,但我迷失了正确的 SED 语法:
How can I extract the value 1601 from this string? I have been trying the following, but am lost with the proper SED syntax:
sed -n "/sessionId/,//sessionId/p"
sed -e "s/<sessionId/
/g"| sed -n "/sessionId/,//sessionId/p"
sed -e "s/</
/g"| sed -n "/sessionId/,/sessionId/p"
我如何提取这个值(当字符串是一个长多行字符串时,通常是两个 XML 标记之间的值)?
How can I extract this value (and generally a value between two XML tags when the string is one, long multiline string)?
谢谢.
推荐答案
这可能对你有用(GNU sed):
This might work for you (GNU sed):
sed '/<sessionId>/!d;s//
/;s/[^
]*
//;:a;$!{/</sessionId>/!N;//!ba};y/
/ /;s/</sessionId>/
/;P;D' file
推荐阅读
- C#通过fleck实现wss协议的WebSocket多人Web实时聊天(附源码)
- 团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
- 使用 MSBuild.exe 在发布模式下构建 C# 解决方案
- 当我发布 Web 应用程序时,AfterPublish 脚本不运行
- 构建时 T4 转换的产品仅在下一个构建中使用
- ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
- 新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
- 如何将条件编译符号(DefineConstants)传递给 msbuild
- MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
- NuGet 包还原找不到包,没有源
热点文章
团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
0
使用 MSBuild.exe 在发布模式下构建 C# 解决方案
0
当我发布 Web 应用程序时,AfterPublish 脚本不运行
0
构建时 T4 转换的产品仅在下一个构建中使用
0
ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
0
新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
0
如何将条件编译符号(DefineConstants)传递给 msbuild
0
MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
0
NuGet 包还原找不到包,没有源
0
使用 C# 6.0 功能运行 TFS 构建
0
