tr a A / etc / hosts | sort -r | pr -d / etc / hosts

9

Nesta linha:

tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts 

qual seria o resultado esperado? Eu sei que minúsculas 'a' mudariam para maiúsculas 'A', mas o que vem a seguir? O arquivo original seria sobrescrito, já que o redirecionamento é para o mesmo nome de arquivo?

    
por tdharrison 22.02.2018 / 02:28

1 resposta

17

O resultado esperado é um arquivo /etc/hosts em branco.

O redirecionamento > /etc/hosts ocorre e trunca o arquivo antes de os programas começarem a ser executados e tr começar a ler o arquivo.

Para gravar a saída em /etc/hosts , você pode trabalhar com uma cópia do arquivo (ou mover o arquivo de saída posteriormente) ou usar o sponge command from moreutils , que irá absorver a entrada padrão e gravar em um arquivo:

tr a A < /etc/hosts | sort -r | pr -d | sponge /etc/hosts

Nesse caso, cada "a" em /etc/hosts será substituído por " A ", todas as linhas serão classificadas em ordem inversa de acordo com a sua localidade , uma linha em branco será inserida entre cada linha , e o resultado será colocado em /etc/hosts .

Você também pode achar útil:

por 22.02.2018 / 02:35