
Sed: aprendendo script de shell usando o comando de terminal Sed
O comando "sed" em Sistemas Operacionais Livres do tipo GNU / Linux é um comando muito versátil, já que por sua vez É considerado um editor de texto orientado para "fluir" ao invés de "interativo" como os típicos, uma vez que aceita um arquivo ou entrada padrão como entrada, processa cada linha e o resultado é enviado à saída padrão. Quer dizer, SED (Stream EDitor) nos permite modificar o conteúdo das diferentes linhas de um arquivo com base em uma série de comandos ou um arquivo de comando.
Geralmente, o comando «sed» é usado como um filtro, uma vez que lê cada linha de sua entrada de dados e, em seguida, executa as ações solicitadas que normalmente são lidas, extraídas, modificadas e mostradas ou salvas. Embora seu poder seja tal que além disso, permite-nos, de forma confortável, apagar linhas, registros ou substituir cadeias de caracteres dentro das linhas de um arquivo.
Introdução ao comando "sed"
Em outras publicações anteriores da DesdeLinux falamos e mostramos exemplos do uso deste comando, tais como: Como deletar linhas específicas de um arquivo ... y Com Terminal: Usando Expressões Regulares II: Substituições, portanto, desta vez veremos diretamente exemplos um pouco mais avançados e práticos de como usá-lo.
Basicamente, o comando «sed» possui a seguinte sintaxe:
sed comandos_sed archivo
onde "Command_sed" corresponde a uma ou mais especificações sobre o que fazer com as linhas que são lidas de "arquivo".
Um uso mais extenso nos deixa com a seguinte sintaxe:
sed [-ns] '[direccion] instruccion argumentos'
Onde:
Exemplos práticos
Listar arquivos / pastas em um caminho
Linha de comando útil que pode ser usada para listar o conteúdo de um caminho X especificado e então detectar / contar / filtrar um item pesquisado e indicar uma ação subsequente a ser executada.
ls -l | awk '{ print $NF }' | sed 1d
Exemplo:
Esta outra variante usando o comando "sed" é muito útil:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Crie uma sequência numérica
Exiba na tela ou salve em um arquivo uma seqüência numérica (ou qualquer outra entrada) criada mas de forma horizontal (linear) e não vertical que pode ser lida posteriormente por outros processos.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
O mesmo exemplo pode ser feito combinando o comando «sede" com "Printf" como mostrado abaixo:
printf '%s ' {1..100}|sed 's/ $/\n/'
Excluir arquivos com exclusões
Peneirar um caminho do sistema de arquivos em busca de padrões de arquivos a serem excluídos e, em seguida, excluir o restante do conteúdo. Muito útil para uma limpeza precisa e cuidadosa.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Crie um endereço MAC virtual
Esta etapa pode ser útil para tarefas de segurança ou proteção do computador ao navegar em sites perigosos ou realizar tarefas de hacking.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
O mesmo efeito pode ser obtido usando o comando "sed" em conjunto com outros comandos, conforme mostrado abaixo:
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1
Exemplo:
Altere temporariamente o prompt do terminal
Isso pode nos ajudar a inserir temporariamente em nosso prompt parâmetros que podem ser úteis para nós enquanto realizamos uma atividade especial. Neste exemplo, alteraremos apenas a forma como o prompt é exibido.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Gerenciar a saída do comando "ps"
Comando muito prático para permitir a formatação da saída do comando «ps», ou seja, o que se obtém do Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Exemplo:
Isso pode ser aplicado para processos de acordo com a porcentagem de memória consumida:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Esses exemplos de linhas de comando usando o comando "sed" Espero que sejam muito úteis. E servem para serem usados diretamente do console ou indiretamente inserindo-os em um script (tarefa automatizada).
Na próxima postagem sobre Shell Scripting, exploraremos outros comandos.
Se você quiser saber um pouco mais sobre o comando "sed" visite este link "Tutorial e breve guia para Unix e Linux"Ou"uso básico»E se você quiser aprender mais sobre Shell Scripting em nosso próprio Blog, você pode conferir nossas outras publicações sobre o assunto, clicando aqui: Scripting em FromLinux.