![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Maneira rápida de encontrar e substituir, ajudar | jkl_jkl | Programação Shell Script e | 1 | 03-06-2008 07:41 |
| Perl: busca de corda em linha, em seguida, procurar e substituir texto | Crypto | Programação Shell Script e | 4 | 01-04-2008 10:24 |
| Qual é a maneira rápida de eliminar estes ficheiros? | tonyvirk | UNIX para Dummies Perguntas & Respostas | 4 | 01-01-2008 08:02 |
| Necessidade de pesquisa e substituição em vários arquivos no diretório hierarquia | umen | Programação Shell Script e | 3 | 12-24-2007 04:56 |
| Procurar e substituir texto multi-line em arquivos | Marz | Programação Shell Script e | 10 | 10-10-2005 09:05 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
busca rápida e substituir em todos os arquivos
Oi
Preciso encontrar uma string em todos os arquivos e substitua THT string com espaço em branco ea necessidade de reorientar todos os ficheiros na mesma directoria novamente. Agora eu estou usando find. /-name "*. dmp" | xargs perl -pi-e 's / \ \ n / / g' | sed 's /.$// g' mas agora o seu não redirrecting corretamente. tendo o seu tempo demasiado para esta operação. Existe alguma maneira de pesquisar e substituir muito rápido em todos os milhares de arquivos rapidamente, sem looping. |
|
||||
|
Isto remove \ N, substitui-la com "" e então corta fora o último caractere de cada linha e insere um espaço por lá. Você conhece dos2unix (ou dos2ux)?
Código:
find ./ -name "*.dmp" | xargs perl -pi -e 's/\\N/ /g; s/.$/ /g' Código:
cnt=0
find ./ -name "*.dmp" |\
while read file do
perl -pi -e 's/\\N/ /g; s/.$/ /g' $file &
cnt=$cnt+1
z=$(( $cnt % 10 ))
if [[ $z -eq 0 ]] ; then
wait
fi
done
wait
Última edição por vgersh99; em 01/25/2008 02:43.. Motivo: faltando ']' |
|
||||
|
Realmente, as exigências são ridículas. Não há nenhuma maneira de pesquisar e substituir qualquer coisa em milhares de arquivos rapidamente. Você pode encontrar algumas formas de mais rápido do que outros, mas nada vai ser uma fórmula mágica. Sugiro que você experimente Perls inplace editor, poderá ser mais rápido do que sed embora eu realmente não sei.
|
![]() |
| Marcadores |
| Tags |
| linux |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|