xml - 在xml中拆分字符串

标签 xml linux awk sed xmlstarlet

我有一个包含数据的 xml 文件。

<STOKUNIT>
  <BELGETARIGI>2017-09-20</BELGETARIGI>
  <STOKKODU>1KKUPS0098</STOKKODU>
  <STOKADI>New Bone China 3-Lu Kupa Seti</STOKADI>
  <RENK>139</RENK>
  <BEDEN>.</BEDEN>
  <STOKBARKODU>8680044399128</STOKBARKODU>
  <FATURANO>6-R-7-4825</FATURANO>
  <MAGAZAKODU>MGUR-02</MAGAZAKODU>
  <MAGAZAADI>GURCISTAN TIFLIS DIGOMI CAD. MAGAZA</MAGAZAADI>
  <MIKTAR>1.00</MIKTAR>
  <SATISSORUMLUSUKODU>99055</SATISSORUMLUSUKODU>
  <SATISSORUMLUSUADI>MARIAM SULIAVRI</SATISSORUMLUSUADI>
  <KDVTUTAT>4.71</KDVTUTAT>
  <FIYAT>30.89</FIYAT>
  <TUTAR>30.89</TUTAR>
  <INDIRIMTUTAR>0.00</INDIRIMTUTAR>
  <BIRIMFIYAT>30.89</BIRIMFIYAT>
  <NETTUTAR>30.89</NETTUTAR>
  <ODEMETIPI> Nakit</ODEMETIPI>
  <ODEMEACIKLAMASI> Nakit</ODEMEACIKLAMASI>
</STOKUNIT>

我只想拆分 FATURANO 那样

6-R-7

4825

这个“4825”应该有不同的名字。

<STOKUNIT>
          <BELGETARIGI>2017-09-20</BELGETARIGI>
          <STOKKODU>1KKUPS0098</STOKKODU>
          <STOKADI>New Bone China 3-Lu Kupa Seti</STOKADI>
          <RENK>139</RENK>
          <BEDEN>.</BEDEN>
          <STOKBARKODU>8680044399128</STOKBARKODU>
          <FATURANO>6-R-7</FATURANO>
          ***<NEWONE>4825</NEWONE>***
          <MAGAZAKODU>MGUR-02</MAGAZAKODU>
          <MAGAZAADI>GURCISTAN TIFLIS DIGOMI CAD. MAGAZA</MAGAZAADI>
          <MIKTAR>1.00</MIKTAR>
          <SATISSORUMLUSUKODU>99055</SATISSORUMLUSUKODU>
          <SATISSORUMLUSUADI>MARIAM SULIAVRI</SATISSORUMLUSUADI>
          <KDVTUTAT>4.71</KDVTUTAT>
          <FIYAT>30.89</FIYAT>
          <TUTAR>30.89</TUTAR>
          <INDIRIMTUTAR>0.00</INDIRIMTUTAR>
          <BIRIMFIYAT>30.89</BIRIMFIYAT>
          <NETTUTAR>30.89</NETTUTAR>
          <ODEMETIPI> Nakit</ODEMETIPI>
          <ODEMEACIKLAMASI> Nakit</ODEMEACIKLAMASI>
</STOKUNIT>

我需要像这样转换 xml 数据,但如果你只回答我第一个问题如何正确拆分字符串,我将进行其他转换

最佳答案

由于 awk 标签是由 OP 添加的,因此尝试在其中回答。

awk -v s1="  " -F"[><]" '
/FATURANO/{
  match($3,/.*-/);
  val1=substr($3,RSTART,RLENGTH-1);
  val2=substr($3,RLENGTH+1);
  print $0 RS s1 "<test>" val1 "</" val1 ">" RS s1 "<test>" val2 "</" val2 ">";
  next
}
1
'   Input_file

关于xml - 在xml中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46979876/

相关文章:

python - 从 xml 中提取文本时保留换行符

awk - 是否有可以处理 s 表达式流的类似 Awk 或 Lisp 的编程语言?

linux - 以 CSV 格式打印 JSON 中的所有键和值

c - 如何将 dup2 与子进程一起使用?

linux - hgweb 服务器中止 : HTTP Error 404: Condition Intercepted

linux - 如何根据字符串行对输出进行过滤?

bash - 如何解决 bash grep 错误以获得行的平均值

java - Jackson 没有大写 XML 元素

java - 如何根据屏幕尺寸调整按钮大小

Python 读取 XML 文件时不断出现错误 "list index out of range"