Eu tenho um arquivo de texto que possui uma lista de caminhos para vários arquivos. Existe um comando que eu possa usar que irá percorrer cada linha e excluir o arquivo no caminho indicado?
command-line
files
daka
fonte
fonte
cat
não é necessária, você pode usar ostdin
redirecionamento:< file xargs rm
cat file
" no (ba) sh ou csh.cat
é inútil , como acabamos de dizer, aproveitestdin
! Veja sua resposta atualizadaAqui está uma maneira de lidar com nomes de arquivos com espaço em branco, barras invertidas e outros caracteres estranhos:
Isso lerá cada linha de
list.txt
, salvará como$file
e executarárm
nela. Os-r
garante que as barras invertidas são lidos literalmente (de modo que\t
corresponde a um\
e umt
e não um TAB). Os--
garante que ele também lida com nomes de arquivos começando com-
.Você também pode fazer isso no Perl:
Este irá ler cada nome de arquivo no
%k
hash e depois usá-lounlink
para excluir cada um deles.fonte
Através de python.
Salve o script acima em um arquivo chamado like
script.py
e execute o script disparando o comando abaixo no terminal.file
é um arquivo de entrada em que o caminho dos arquivos que você realmente deseja remover são armazenados.fonte
Bobo, mas aqui está um:
fonte
Outra maneira de fazer isso:
Você pode 'preparar' o arquivo transformando-o em um shell script:
Se seus nomes de arquivos tiverem uma única citação (
'
), você poderá usar esta versão ligeiramente expandida para escapar deles primeiro:E você pode executar isso canalizando-o para
sh
:fonte
Pelo que entendi, você tem um arquivo de texto com os arquivos com os caminhos completos. Existem duas possibilidades:
Sua lista tem os nomes de arquivos separados por novas linhas, ou seja, cada linha tem o caminho completo para um arquivo. neste caso: aqui está uma saída simples:
Se sua lista tiver uma ou mais linhas de nomes de arquivos separadas por espaços ou tabulações, aqui está o detalhamento:
isso converterá todos os espaços em branco em novas linhas
Sim, existem várias maneiras de fazer isso, mas essa é uma abordagem muito simples.
fonte