Como posso facilmente recuperar arquivos html de acordo com alguns padrões normais?

7

Eu tenho alguns arquivos html que gostaria de reter e que se parecem com isso:

<header>
    <div class="wrapper">
                    <img src="images/logo.png">
                    <div class="userbox">
                            <div class="welcome">Welcome Andy!</div>
                            <div class="blackbox">
                                    <ul>
                                            <li><a href="#">Invite Friends</a></li>
                                            <li><a href="#">My Account</a></li>
                                            <li><a href="#">Cart</a></li>
                                            <li><a href="#">Sign Out</a></li>
                                    </ul>
                            </div>
                    </div>
            </div>
</header>

E eu quero que eles sejam parecidos com isto:

<header>
  <div class="wrapper">
    <img src="images/logo.png">
    <div class="userbox">
      <div class="welcome">Welcome Andy!</div>
        <div class="blackbox">
          <ul>
            <li><a href="#">Invite Friends</a></li>
            <li><a href="#">My Account</a></li>
            <li><a href="#">Cart</a></li>
            <li><a href="#">Sign Out</a></li>
          </ul>
        </div>
    </div>
  </div>
</header>

Ou algum padrão sensato. Qual é a maneira mais fácil de fazer isso a partir do terminal no Ubuntu para todos os arquivos html no diretório atual?

    
por James 10.01.2011 / 20:08

3 respostas

8

Em vim :

:set softtabstop=0
:set expandtab
:set smarttab
:set shiftwidth=2
gg=G
:retab

EDIT: Explicações:

  • linhas 1-3: padrão são
  • linha 4: recuo com 2 espaços
  • linha 5:
    • gg : top line
    • = : recuo até ...
    • G : ... end
  • linha 6: garantir que todas as guias sejam convertidas em espaços
por shellholic 10.01.2011 / 20:39
1
sudo apt-get install tidy
cd whatever_dir_you_want
find . -name '*.html' -exec tidy -m {} \;

Nota: isso provavelmente não será legal com o inline-php. Brinque com tidy (sem o argumento -m ) para ver como funciona.

    
por Oli 10.01.2011 / 20:56
0

Essas guias estão no primeiro exemplo e espaços no próximo? Aqui está um script de shell que pode alterar as guias para dois espaços. Mude o diretório de trabalho para a localização dos arquivos HTML.

#!/bin/sh
for i in *.html
do
    sed 's/\t/  /g' "${i}" > filename.notabs && mv filename.notabs "${i}"
done

UPDATE

Eu só precisava fazer algo parecido. Eu fui estreito para Komodo Editar do recurso substituir-em-arquivos. É muito bom se você tiver acesso à GUI nos arquivos.

    
por user8290 10.01.2011 / 20:52