Trabalhando com arquivos e strings

1. Trabalhando com arquivos e strings

Marcos Vinícius Dunguel Nunes
mdunguel

(usa Debian)

Enviado em 29/08/2022 - 17:32h

Bom dia, boa tarde ou boa noite.
Estou querendo fazer um script para a retirada de um determinado trecho de um texto dentro de um arquivo no shell.
O arquivo o qual eu desejo realizar isso é o os-release.
Analisando este arquivo em algumas distribuições linux tenho os seguintes conteúdos:
##############
No Alma Linux:
##############
NAME="AlmaLinux"
VERSION="8.6 (Sky Tiger)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.6 (Sky Tiger)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8"
ALMALINUX_MANTISBT_PROJECT_VERSION="8.6"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.6"

###############
No Rocky Linux:
###############
NAME="Rocky Linux"
VERSION="8.6 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.6 (Green Obsidian)"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky Linux"
ROCKY_SUPPORT_PRODUCT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

##########
No Fedora:
##########
NAME="Fedora Linux"
VERSION="36 (Server Edition)"
ID=fedora
VERSION_ID=36
VERSION_CODENAME=""
PLATFORM_ID="platform:f36"
PRETTY_NAME="Fedora Linux 36 (Server Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:36"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f36/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=36
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=36
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Server Edition"
VARIANT_ID=server

##########
No Oracle:
##########
NAME="Oracle Linux Server"
VERSION="6.10"
ID="ol"
VERSION_ID="6.10"
PRETTY_NAME="Oracle Linux Server 6.10"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:6:10:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 6"
ORACLE_BUGZILLA_PRODUCT_VERSION=6.10
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=6.10

##########
No Debian:
##########
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

##########
No Ubuntu:
##########
NAME="Ubuntu"
VERSION="18.04.6 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.6 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

Analisando todas estes arquivos, pude notar o campo "NAME=..."
O que estou querendo fazer é separar apenas esta linha que contem o campo NAME= e depois retirar dela apenas o nome da distribuição e atribuir esse nome a uma variável para após eu testar e colocar na tela a mensagem:
"Você está acessando uma distribuição linux (Colocar aqui o nome da distribuição)".

Alguma dica?


  


2. Re: Trabalhando com arquivos e strings

Perfil removido
removido

(usa Nenhuma)

Enviado em 29/08/2022 - 20:09h


source /etc/os-release

echo "Você está acessando uma distribuição linux $NAME"




3. Re: Trabalhando com arquivos e strings

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 29/08/2022 - 23:16h


Para obter a linha: sed -n '/^NAME/p' /etc/os-release
para obter o nome: sed -n '/^NAME/p' /etc/os-release | cut -d = -f2


4. Re: Trabalhando com arquivos e strings

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/08/2022 - 12:05h

Só para zoar:

 [[ $(</etc/os-release) =~ NAME=\"([^\"]*)\" ]] 
echo ${BASH_REMATCH[1]}



5. Re: Trabalhando com arquivos e strings

Dilan Severino de Oliveira
dilan1998

(usa Debian)

Enviado em 01/09/2022 - 12:26h


grep -Eoi "\".*gnu.*\w\"$" /etc/os-release


6. Re: Trabalhando com arquivos e strings

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/09/2022 - 17:23h

Boa tarde.
Segue sugestão:
awk -F"[= ]" '$1~/^NAME/{gsub("\"","");print $2}' OS_RELEASE.txt
AlmaLinux
Rocky
Fedora
Oracle
Debian
Ubuntu


PS.: O arquivo OS_RELEASE.txt,
tem todos '/etc/os_release' que você postou....


______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts