Copie strings não correspondidas de um arquivo para outro, em massa

0

Estou tentando comparar arquivos de folder1 com sua versão atualizada em folder2 . Os arquivos têm nomes idênticos, mas podem ter um número diferente de strings. As cadeias parecem:

string_1_name: "some text"
string_2_name: "some text"
.
.
string_n_name: "some text"

Portanto, preciso comparar apenas as partes das strings antes de dois pontos - string_1_name e, em seguida, se um arquivo1.txt da pasta2 tiver uma string extra ou atualizada, eu quero copiar a string completa string_1_name: "some text" e colá-la no file1.txt de folder1 , mas no mesmo local (uma string atualizada pode estar entre as strings antigas) ou substituir uma string antiga por uma atualizada. Em seguida, crie o resultado file1.txt (com o mesmo nome) em folder3 .

Será ótimo se as strings recém-adicionadas nos arquivos de resultados forem destacadas de alguma forma, coloridas ou pelo menos em negrito.

Obrigado.

    
por Billy Kubr 13.07.2015 / 06:25

1 resposta

1

tente diff -u file_1.txt file_2.txt > patch1o2 então patch -p0 < patch1o2

o primeiro comando criará um arquivo chamado patch1o2 contendo toda a diferença entre os dois arquivos. O segundo comando adicionará no primeiro arquivo o conteúdo da diferença na mesma posição de linha.

a saída será um arquivo_1.txt atualizado com linhas extras do arquivo_2.txt

editar 14/07/2015: criar um script bash com um loop para analisar todos os arquivos presentes na pasta aqui está um exemplo:

FILE_1=folder_1/*.txt
for i in "$FILE_1"
do  
    awk -F"," '{print $1}' "$i"
done
    
por green frog 13.07.2015 / 07:39