Em um shell
cat original_file_prefix.* | sed 's/[" ]//g' > new_file_name
Ou abra seus arquivos no vim e digite o seguinte (você terá que executá-lo)
:%s/[" ]//g
Isso deve se livrar das citações e espaços.
Por favor, ajude-me a substituir o caminho em vários arquivos de texto em uma linha.
Suponha que eu tenha /home/shyam/Raghav/2014/12_dec/31122014/
em meus arquivos de texto e eu quero que ele seja substituído por /home/shyam/Raghav/12_dec/31122014
, como posso fazer isso?
Em um shell
cat original_file_prefix.* | sed 's/[" ]//g' > new_file_name
Ou abra seus arquivos no vim e digite o seguinte (você terá que executá-lo)
:%s/[" ]//g
Isso deve se livrar das citações e espaços.
Tente com este comando:
sed -i 's/\/home\/shyam\/Raghav\/2014\/12_dec\/31122014\//\/home\/shyam\/Raghav\/12_dec\/31122014/g' files*
-i
opção edita os arquivos no lugar.
Substitua files*
pelo seu padrão de pesquisa desejado.
Observe que isso substitui /home/shyam/Raghav/2014/12_dec/31122014/
por /home/shyam/Raghav/12_dec/31122014
conforme sugerido. Sem% final /
no resultado. Se você quiser, substitua /g
por \//g
no final do comando.
sed -i 's:/home/shyam/Raghav/2014/12_dec/31122014/:/home/shyam/Raghav/12_dec/31122014:g' files*.txt
Para alterar todos os caminhos em vários arquivos de texto, recomendo abrir todos esses arquivos em uma janela dividida. ou seja, 'vim -o [arquivo1] [arquivo2] [arquivo3] ...'
Agora você verá todos os arquivos abertos em buffers ViM separados.
Agora, para substituir o texto necessário em TODOS os buffers, você pode emitir:
': windo% s / [SEARCH_PATTERN] / [REPLACE_PATTERN] / g'
E isso deve emitir o comando de substituição de texto em TODOS os buffers.
Seu comando deve ser então:
: windo% s / \ / home \ / shyam \ / Raghav \ / 2014 \ / 12_dec \ / 31122014 \ // \ / home \ / shyam \ / Raghav \ / 12_dec \ / 31122014 '
Espero que ajude.
Tags linux