1

これは私のサンプルファイルです:

<?xml version="1.0" encoding="UTF-8" ?>
 <testjar>
 <testable>
  <trigger>Trigger1</trigger>
  <message->2012-06-14T00:03.54</message>
 <sales-info>
  <san-a>no</san-a>
  <san-b>no</san-b>
  <san-c>no</san-c>
  </sales-info>
  </testable>
  </testjar>

これからxmlタグを抽出する必要があります-

たとえば、上記のファイルの出力は次のようになります

testjar
testable
trigger
message
sales-info
....
4

2 に答える 2

3
$> cat ./text
<?xml version="1.0" encoding="UTF-8" ?>
 <testjar>
 <testable>
  <trigger>Trigger1</trigger>
  <message>2012-06-14T00:03.54</message>
 <sales-info>
  <san-a>no</san-a>
  <san-b>no</san-b>
  <san-c>no</san-c>
  </sales-info>
  </testable>
  </testjar>

$> grep -P -o "(?<=\<)[^>?/]*(?=\>)" ./text
testjar
testable
trigger
message
sales-info
san-a
san-b
san-c 

正規表現(?<=\<)[^>?/]*(?=\>)は 3 つの部分で構成されます。

  • (?<=\<):(?<=)は後読み演算子なので、「< の後」を意味します。

  • [^>?/]*: 0 回以上>?はない。/

  • (?=\>):(?=)は先読み演算子なので、「前 >」を意味します。

于 2012-07-25T08:27:13.407 に答える
0
awk -F">" '{print $1}' xmlfile | sed -e '/<\//d' -e '/<?/d' -e 's/<//g'
于 2012-07-25T08:44:32.490 に答える