cari

Rumah  >  Soal Jawab  >  teks badan

Linux Bash: Padamkan blok data jadual HTML dengan mudah

Saya mempunyai fail html yang saya sedang memproses menggunakan skrip bash dan ingin mengalih keluar jadual kosong. Fail dijana daripada pernyataan sql tetapi termasuk pengepala apabila tiada rekod ditemui. Saya mahu memadamkan tajuk yang tiada rekod ditemui.

<table border="1">
  <caption>Table with data</caption>
  <tr>
    <th align="center">type</th>
    <th align="center">column1</th>
    <th align="center">column2</th>
    <th align="center">column3</th>
    <th align="center">column4</th>
   </tr>
   
   Data rows exists here
   
  </table>

<table border="1">
  <caption>Empty Table To Remove</caption>
  <tr>
    <th align="center">type</th>
    <th align="center">column1</th>
    <th align="center">column2</th>
    <th align="center">column3</th>
    <th align="center">column4</th>
    <th align="center">column5</th>
    <th align="center">column6</th>
    <th align="center">column7</th>
  </tr>
</table>

<table border="1">
  <caption>Table with data</caption>
  <tr>
   <th align="center">type</th>
    <th align="center">column1</th>
    <th align="center">column2</th>
    <th align="center">column3</th>
    <th align="center">column4</th>
   </tr>
     Data rows exists here
  </table>

Saya cuba menggunakan gabungan grep dan sed untuk memadamkan jadual kosong. Saya dapat menyelesaikan tugas ini apabila jadual mengandungi bilangan lajur yang sama. Saya menghadapi beberapa masalah sekarang kerana jadual saya mempunyai bilangan lajur yang berbeza.

Apabila jadual mempunyai bilangan lajur yang sama, saya dapat menggelung berdasarkan pengepala, mengira dan kemudian memadam. Oleh kerana bilangan lajur berbeza, ini tidak berfungsi.

P粉787806024P粉787806024233 hari yang lalu470

membalas semua(1)saya akan balas

  • P粉242741921

    P粉2427419212024-04-03 00:19:04

    Seperti ini, menggunakan dan :

    $ xmlstarlet format -H file.html | sponge file.html
    $ xmlstarlet ed -d '//table[./caption/text()="Empty Table To Remove"]' file.html 
    
    
    
      
        
       
       Data rows exists here
       
      
    Table with data
    typecolumn1column2column3column4
    Data rows exists here
    Table with data
    typecolumn1column2column3column4

    Untuk mengedit di sed -i dsb. gunakan

    xmlstarlet edit -L ...

    Tiada penjelasan, tetapi jangan gunakansedregex来解析HTML/XML

    balas
    0
  • Batalbalas