如何使用erlang os删除特殊字符/转义序列:cmd()?

时间:2017-06-28 02:44:48

标签: string erlang otp

最近我一直在使用os:cmd在我的本地计算机上运行命令。当我使用os:cmd。我不仅获得了所述命令的输出,而且结果字符串和输出在我的输出/字符串示例中生成或“插入”空格并转义序列:

os:cmd(“WMIC BIOS GET SERIALNUMBER”)。

产地:

“SerialNumber \ r \ n \ r \ nNCN9B4R1 \ r \ r \ n \ r \ n \ r \ n”

我尝试搜索erlang文档,但IO lib中没有任何内容可以触及我或铃声。

非常感谢你们!

1 个答案:

答案 0 :(得分:4)

你得到的是命令的完整输出。 os:cmd/1并不包含任何内容。您必须像处理任何其他语言一样处理输出并删除不需要的字符,因为您获得的正是命令生成的内容。使用io_libstringlistsre模块解析输出。例如,使用string:tokens\2,您可以检查并获取序列号,如

Output = os:cmd("WMIC BIOS GET SERIALNUMBER"),
["SerialNumber", SerialNumber] = string:tokens(Output, " \r\n").