gpt4 book ai didi

linux - 将此linux语句转换为windows命令提示符支持的语句

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:08 27 4
gpt4 key购买 nike

这是我的unix环境支持的语句

"cat document.xml | grep \'<w:t\' | sed \'s/<[^<]*>//g\' | grep -v \'^[[:space:]]*$\'"

但我想在 Windows 命令提示符下执行该语句。我怎么做?还有哪些类似于 cat、grep、sed 的命令。

请告诉我与上述命令类似的 Windows 支持的确切代码

最佳答案

您的问题中管道周围的双引号是语法错误,反斜杠单引号显然应该没有反斜杠,但我认为这只是一个稍微不精确的演示的产物。

以下是代码的作用。

cat document.xml |

这是一个useless use of cat 但其目的是将这个文件的内容输入到管道中。

grep '<w:t' |

这将查找包含文字字符串 <w:t 的行(可能是文件中 XML 格式的标记的开头)。单引号引用字符串,以便 shell 不解释它(否则 < 将被解释为重定向运算符);它们被外壳消耗,并且不会传递到 grep .

sed 's/<[^<]*>//g' |

这会将每对开/关断线替换为空字符串。正则表达式[^<]*匹配零次或多次出现的字符,该字符可以是除 < 之外的任何字符。如果 XML 格式良好,则它们应该始终成对出现,因此我们可以有效地删除所有 XML 标签。

grep -v '^[[:space:]]*$'

这会删除任何空行或完全由空格组成的行。

因为sedgrep 的超集,该程序可以轻松地改写为单个 sed脚本。也许解决您当前问题的最简单的解决方案是获取 sed 的副本适合您的平台。

sed -e '/<w:t/!d' -e 's/<[^<]*>//g' -e '/[^[:space]]/!d' document.xml

我了解 Windows 上的引用规则可能有所不同;尝试使用双引号而不是单引号,或者将脚本放入文件中并使用 sed -f file document.xml哪里file包含脚本本身,如下所示:

/<w:t/!d
s/<[^<]*>//g
/[^[:space]]/!d

无论如何,这是从 XML 文档中提取 CDATA 的一种相当粗糙的方法;也许某些 XML 处理器将是正确的前进方向。例如。 xmlstarlet似乎适用于 Windows。即使 XML 输入没有开头和结尾,它也可以工作 <w:t>标签在同一行上,没有其他内容。 (事实上​​,使用面向行的工具解析 XML 是 massive antipattern 。)

关于linux - 将此linux语句转换为windows命令提示符支持的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35480107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com