Encontre e substitua uma palavra em todos os arquivos com base no padrão de arquivo

0

Eu tenho uma variável chamada "User": "x-73098" em vários arquivos e os nomes de arquivos como astro_root_sys-dev.txt.

Como encontrar todos os arquivos com a variável "Usuário": "x-73098" e substituir dinamicamente esse valor de variável de "User": "x-73098" para "User": "sys_user" .

O valor do usuário (x-73098) não será o mesmo em todos os arquivos, os números após x- variam em muitos arquivos.

    
por itgeek 19.10.2018 / 04:04

2 respostas

0

Este sed linear pesquisará os documentos que contêm "desconhecido" e o repalirá com "sys_user":

sed -i 's/"unknown"/"sys_user"/g' *.txt

Para alterar todas as strings, termina com -73098 :

Se x é um número:

sed 's/[0-9]-73098/"sys_user"/g'  *.txt

Se x é uma letra pequena:

sed 's/[a-z]-73098/"sys_user"/g'  *.txt

Se x é letra maiúscula:

sed 's/[A-Z]-73098/"sys_user"/g'  *.txt

Se x for maiúsculo ou minúsculo ou um número:

sed -i 's/[a-zA-Z0-9]-73098/User: "sys_user"/g' *.txt
    
por 19.10.2018 / 04:28
0

Tente

for FN in astro*.txt; do sed -r 's/(User: ")x-[[:digit:]]*"/sys_user"/' "$FN" > /tmp/TMP$$; mv /tmp/TMP$$ "$FN"; done
    
por 19.10.2018 / 12:18