use a lista de arquivos ls e mude o conteúdo da lista de arquivos para a lista de arquivos

0

Eu preciso usar o ls > filelist e, no entanto, quando é usar "cat filelist" , ele exibe todo o conteúdo no filelist com filelist como um dos nomes nele, mas preciso alterá-lo "* * * File List * * *" . Não tenho certeza de como fazer isso apenas na lista de arquivos filelist , se isso fizer sentido.

    
por Phantom1421 08.03.2016 / 19:35

4 respostas

0

ls > /tmp/filelist
echo "* * *  File List  * * *"
cat /tmp/filelist

assume que você não está listando os arquivos em /tmp . Se esse for o caso, altere o /tmp para /var/tmp

    
por 08.03.2016 / 20:16
0

Você pode fazer:

ls | grep -vx filelist > filelist

A opção -v faz com que ela exclua as linhas correspondentes da saída, e -x faz com que ela corresponda à linha inteira (para não pular otherfilelist ).

    
por 08.03.2016 / 21:30
0

Os comandos Unix são bastante concisos e não decoram sua saída com cabeçalhos / rodapés ou detalhes irrelevantes, precisamente para facilitar seu uso em pipelines aleatórios. Adicioná-lo é bem fácil:

(echo '* * * This is a header * * *'; ls ; echo --* footer *--) > filelist
    
por 08.03.2016 / 22:46
0

Apenas para um entendimento mais profundo: você pode facilmente dividir o comando inteiro em três partes:

  1. echo " Lista de arquivos "; echo imprime (se você não tem pipe a saída em outro lugar) em STDIN (entrada padrão)

  2. ls | grep -vx filelist; lista o conteúdo do seu diretório atual e canaliza a saída para o grep. Normalmente, "grep" apenas imprime linhas que contenham a palavra-chave dada ("filelist") no nosso caso. Com a opção -v, procuramos por linhas que NÃO contenham a palavra-chave. Como mencionado por Barmar, também excluiria arquivos que contenham "filelist" como, e. "myfilelist", "filelist2", ..., então o uso do -x é recomendado.

  3. filelist redirects the output to the file "filelist". As (1) and (2) are in brackets and seperated by semicolons, the output (which would have been printed out on STDIN) of both commands will be redirected to this file.

por 08.03.2016 / 23:54

Tags