0


XPathの要素を調べるのに役立つLinuxシェルコマンドを探しています。
たとえば、次のようになります。

/a[@e=2]/bee/cee[@e<9]/@dee

それぞれ、3つのコマンドを返す必要があります。

a
[@e=2]
/bee/cee[@e<9]/@dee

後で、すべてのXpathを分析するために、このプロセスを繰り返すことができます。

sedと正規表現を使ってみましたが、できませんでした。

4

1 に答える 1

0

sed奇妙なリクエスト...しかし、パターンを使用すると、これを非常に簡単に行うことができます^/\([-a-zA-Z0-9_]*\)\(\[[^]]*\]\)\(.*\)$。リクエストしたセグメントは3つのキャプチャです。

zsh% data='/a[@e=2]/bee/cee[@e<9]/@dee'
zsh% pattern='^/\([-a-zA-Z0-9_]*\)\(\[[^]]*\]\)\(.*\)$'
zsh% sed "s#$pattern#\1#" <($data)
a
zsh% sed "s#$pattern#\2#" <($data)
[@e=2]
zsh% sed "s#$pattern#\3#" <($data)
/bee/cee[@e<9]/@dee
zsh%

パターンはリクエストに非常に特化しています。XPath式は、シェルで分解するのが非常に難しく、面倒で高価です。達成しようとしていることに応じて、言語の好みに応じて、シェルスクリプトをPython、Ruby、またはPerlのいずれかに翻訳したほうがよいでしょう。また、Bashの代わりにzshを使用することも検討してください。高度なスクリプティングにはるかに適していることがわかりました。

于 2012-12-22T13:27:21.320 に答える