Excluindo uma linha em um arquivo .txt depois de comparar com uma string?

0

Trabalhando em uma máquina CentOS 6.9 e estou mais do que um pouco enferrujado no meu script bash. Antes de entrar nos detalhes do que estou tentando fazer, aqui está meu código até o momento para referência:

#!/bin/bash

package_name="<>"
yum list all > all_packages.txt
len='expr length "$package_name"'
string=$((len-1))

while IFS= read -r line || "$line"; do
if [[${line:0:$string = $package_name}]]
then <>

Meu objetivo final é permitir que um usuário defina um pacote para desinstalar, salve os pacotes atualmente instalados em um arquivo de texto, compare as linhas desse arquivo para ver quais linhas correspondem ao pacote especificado, salve isso como um novo arquivo de texto e deixe um comando "yum remove" repetir esse arquivo de texto para excluir o pacote em sua totalidade.

Minha abordagem no momento é pegar o pacote que o usuário deseja excluir, obter o comprimento da string correspondente e comparar entre os primeiros caracteres X de cada linha e o pacote em si - se eles não corresponderem, eu apagará essa linha e passará para a próxima.

Meu problema neste estágio é que não sei como remover as linhas que não correspondem ao pacote especificado. Do que eu vi online, pode ser feito com "sed" ou "grep", mas eu não consegui muito além disso.

Agradecemos antecipadamente por toda a ajuda! Eu agradeço profundamente!

    
por P. Monroe 06.04.2018 / 18:05

1 resposta

2

Cuidado com o Problema XY .

Você deseja remover pacotes que foram instalados apenas como dependências, o que yum pode fazer. E se o eclipse instalasse outros pacotes como dependências, mas esses pacotes não incluíssem "eclipse" no nome? Correspondência de strings não ajudará lá.

A partir de man yum , yum autoremove removerá todos os pacotes que não foram instalados manualmente pelo usuário e não são mais necessários por nada. yum autoremove mypackage removerá apenas o pacote fornecido e suas dependências não mais necessárias.

Para autoremove a qualquer momento em que você usar yum remove , adicione "clean_requirements_on_remove=1" ao seu /etc/yum.conf .

    
por 06.04.2018 / 19:27

Tags