Procure por strings de texto dentro de um diretório e, em seguida, substituindo-os, via ssh [duplicate] -- and-line campo com ssh campo com text-processing camp askubuntu Relacionado O problema

Search for text strings inside a directory and then replacing them, via ssh [duplicate]


-1
vote

problema

português
.

Existe alguma maneira de procurar uma string de texto e.g Hello e substituí-lo por e.g abcdefghijklmnabcdefgijklmn4 em todos os arquivos de texto em uma estrutura de diretório com muitos subdiantes? Eu estou executando o servidor Ubuntu 17.04 x64.

english

Is there any way to search for a text string e.g Hello and replace it with e.g Hi in all the text files in a directory structure with MANY sub directories? I'm running Ubuntu 17.04 x64 server.

        
   
   

Lista de respostas

3
 
vote
vote
Melhor resposta
 

Você tem que ssh na máquina remota e executa o comando descrito abaixo.

O comando a seguir substituirá todas as ocorrências de "olá" em todos os arquivos dentro de um local específico (conforme sua escolha) com "Hi".

  find /path/to/main/parent/directory -type f -exec sed -i 's/hello/hi/gI' {} ;    

NOTA

O acima é insensível em minúsculas, se você quiser substituição sensível a maiúsculas e minúsculas, você pode tentar com a remoção I , ou seja. 's/Hello/Hi/g'

/path/to/main/parent/directory : você deve especificar o diretório pai do qual seu arquivo contendo string "Hello" começa.

para URLs

A partir do comentário eu vim para saber que você deseja substituir um URL com outro que contém :// por favor, use o seguinte método para substituir as strings que contém URL.

  sudo apt-get update0   
 

You have to ssh into the remote machine and run the command described below.

The following command will replace all occurrences of "Hello" in all files inside a specific location (as per your choice) with "Hi".

find /path/to/main/parent/directory -type f -exec sed -i 's/hello/hi/gI' {} \; 

Note

The above is case insensitive, if you want case sensitive replacement you can try with removing I, ie. 's/Hello/Hi/g'

/path/to/main/parent/directory : You must specify the parent directory from which your file containing string "Hello" starts.

for URLs

From the comment I came to know that you want to replace a URL with other which contains :// So please use the following method to replace strings which contains URL.

find /path/to/main/parent/directory -type f -exec sed -i 's,/URL1/,/URL2/,gI' {} \; 
 
 
         
         
1
 
vote

Apenas outra opção usando sudo apt-get update1 em vez de encontrar:

  sudo apt-get update2   
 

Just another option using grep -Rl instead of find:

grep -Rl 'hello' /path/to/main/parent/directory | xargs -n1 sed -i 's|hello|hi|g' 
 
 

Perguntas relacionadas

2  Apare o início de um arquivo de texto  ( Trim beginning of a text file ) 
Eu tenho um arquivo de texto com espaços inesperados no começo e gostaria de aparar o começo e salvá-lo. Como posso fazer isso? Eu tentei um exemplo muito s...

3  Como o AWK pode ser usado para listar contêineres de encaixe?  ( How can awk be used to list docker containers ) 
Estou procurando usar ferramentas ao longo das linhas de: grep sed awk Para trabalhar com o Docker. listando contêineres: docker container ls |...

2  Sum Coluna 2 do arquivo .csv Se a coluna 1 for a mesma  ( Sum column 2 of csv file if column 1 is the same ) 
Eu tenho um arquivo CSV onde a coluna 1 é o nome de um gene e coluna 2 é um valor associado a esse gene. No entanto, alguns genes têm vários valores e quero s...

5  Analisando um arquivo usando ferramentas de processamento de texto  ( Parsing a file using text processing tools ) 
Um arquivo parece: 1140.271257 0.002288454025 0.002763420728 0.004142512599 0 0 0 0 0 0 0 0 0 0 0 1479.704769 0.00146621631 0.003190634646 0.003672029231 ...

22  Como substituir espaços por newlines / enter em um arquivo de texto?  ( How to replace spaces with newlines enter in a text file ) 
Eu tenho um arquivo de texto simples chamado "exemplo". Leitura com o comando terminal: cat example Saída: abc cdef ghi jk lmnopq rst uv wxyz Eu ...

0  Como faço para copiar o conteúdo de um arquivo e concatenamos em um novo arquivo?  ( How do i copy contents of a file and concatenate it into a new file ) 
Eu tenho que fazer novos arquivos que contenham o conteúdo do arquivo original duas vezes e, em seguida, concatenaram a linha por linha. Por exemplo: File ...

1  Usando sed para adicionar caracteres no final de uma linha adiciona uma nova linha  ( Using sed to add characters at the end of a line adds a new line ) 
Eu estou fazendo um script para converter algumas varetas mágicas de um formato para outro. Eu preciso inserir o código SET para cada cartão no final da linha...

1  Substitua apenas alguns números usando SED [FECHADO]  ( Replace only certain numbers using sed ) 
. fechado . Esta pergunta precisa detalhes ou clareza . Atualmente não está aceitando respostas. ...

14  Existe uma maneira, idealmente usando a linha de comando, para converter vários arquivos .csv para uma planilha de multi-folha  ( Is there a way ideally using the command line to convert multiple csv files t ) 
Existe uma maneira, idealmente usando a linha de comando, para converter vários arquivos .csv para uma planilha de multi-folha. Se não houver uma solução CL...

4  Remover citações em torno de números inteiros em um arquivo CSV  ( Remove quotes around integers in a csv file ) 
em um grande arquivo csv (& gt; 1 gb) eu tenho algo como "34432", "name", "0", "very long description" Mas em vez disso gostaria de ter 34432, "name...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.