Mover strings para final da linha [RESOLVIDO]

1. Mover strings para final da linha [RESOLVIDO]

Erick Rangel Gomes
incoquinita

(usa Debian)

Enviado em 26/07/2011 - 10:20h

Bom dia

Estou precisando mover uma serie de strings para o final de uma linha.
A entrada que eu tenho esta logo a seguir, que é um segmento do dhcpd.conf:

{ ##WS001798 ##hardware ethernet 00:08:54:xx:xx:xx ; #hardware ethernet 00:1e:c9:xx:xx:xx ; hardware ethernet 00:55:33:xx:xx:xx ; #fixed-address 192.168.xx.xx ; fixed-address 192.168.xx.xx }

O que eu preciso fazer, preciso pegar tudo que seja comentario e mover para depois do '}'. Eu consigo localizar tudo de uma só vez, da seguinte forma: egrep -i -o '(#[0-9a-z :.;-_]{1,})'
Mas o problema é que ele encontra tudo.

Resumindo:

Eu tenho:

{ ##WS001798 ##hardware ethernet 00:08:54:xx:xx:xx ; #hardware ethernet 00:1e:c9:xx:xx:xx ; hardware ethernet 00:55:33:xx:xx:xx ; #fixed-address 192.168.xx.xx ; fixed-address 192.168.xx.xx }

Preciso que fique assim:

{ hardware ethernet 00:55:33:xx:xx:xx ; fixed-address 192.168.xx.xx } #WS001798 #hardware ethernet 00:08:54:xx:xx:xx ; #hardware ethernet 00:1e:c9:xx:xx:xx ; #fixed-address 192.168.xx.xx ;


  


2. Re: Mover strings para final da linha [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 26/07/2011 - 13:14h

Se o padrão de todas as linhas for este mesmo, pode usar este script. Insira o nome do arquivo na variável FILE (troque o /tmp/teste.txt pelo caminho do seu arquivo).

Segue o script:

#!/bin/sh

FILE="/tmp/teste.txt"

V1=`awk -F";" '{ print "{" $3 $4 "}" }' $FILE`
V2=`awk -F";" '{ print $1 $2 }' $FILE`
V3=`awk -F';' '{ print $4 }' $FILE`

echo $V1 $V2 $V3 | sed 's/\##/#/g' | sed 's/\#/, /' | sed 's/$/ ;/'








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts