msoliver
(usa Debian)
Enviado em 20/12/2022 - 23:33h
anaapaulla escreveu:
Estou fazendo um scripts para transposição das linhas de um arquivo de texto, mas na saida so aparece só o print das linhas sem a transposição
#!/bin/bash
arquivo="$1"
while IFS= read -r i; do
echo "${i}" | sed 's/ /\'$'\n''/g'
done < "${arquivo}"
Boa noite.
Com base na sua postagem anterior, montei o seguinte script:
#!/usr/bin/env bash
sep='------------------------------';
tem_erro(){
echo -e "\e[1;38mUso:\n./nome_script \"padrao de pesquisa\" \"arquivo fonte\"\e[m";
exit;
}
#Testa se o nº de parametros é = 2
if (("$#" == 2));then
padrao="$1";
arq="$2";
#Se padrão for vazio, ou, tamanho do arquivo não for >0, mensagem de ERRO
[ -z "${padrao}" -o -s "${arq}" ] || tem_erro;
else
#Se nº de parâmetros, não é o especificado, ERRO
tem_erro
fi
while read line; do
## Troquei o "echo "${i}" | sed 's/ /\'$'\n''/g'" por "${line// /\\n}" ## Troca espaços por '\n'.
#Testa se a linha tem o padrão especificado no argumento.
[[ "${line}" =~ "${padrao}" ]] && echo -e "$line\n${sep}\n${line// /\\n}\n${sep}";
done < "${arq}"
Programação de scripts
------------------------------
Programação
de
scripts
------------------------------
Faço scripts em shell
------------------------------
Faço
scripts
em
shell
------------------------------
______________________________________________________________________
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
______________________________________________________________________