shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Deletando últimos caracteres


From: Julio C. Neves
Subject: Re: [shell-script] Deletando últimos caracteres
Date: Mon, 30 Apr 2012 11:57:05 -0300

Jean
são dois casos distintos, mas nos exemplos que darei, considerarei que o
tamanho final desejado é de 9 caracteres.

1o. caso, tamanho da linha é menor que nove:
$ linha=123
$ enche=123456789
$ sed "s/$/${enche:${#linha}}/" <<< $linha
123456789
Nesse caso criei uma variável de preenchimento ($enche) do tamanho da linha
desejada e o sed coloca no fim ($) e valor extraído desta variável
(${enche:...}) desde o tamanho da linha (${#linha}) até o final

2o. caso, tamanho da linha é maior que nove:
$ linha=1234567890123
$ sed -r 's/^(.{9}).*/\1/' <<< $linha
123456789
Onde a partir do início (^) eu guardo (com os parênteses) 9 caracteres
(.{9}) e, despresando o resto (.*), substituo somente pelo que foi guardado
(\1).

Juntando os dois vem:
$ sed -r "s/$/${enche:${#linha}}/;s/^(.{9}).*/\1/" <<< $linha


Abcs,
Julio

*
*



Em 30 de abril de 2012 09:17, Jean Vieira <address@hidden> escreveu:

> **
>
>
> Salve a todos.
>
> Pessoal preciso dar uma mão a turma do faturamento aqui da empresa. O
> problema encontrado é o seguinte:
> Eles precisam importar arquivos .txt para o sistema e esse arquivo precisa
> que as linhas precisam ter 630 caracteres e o arquivo existente possui 1500
> linhas, umas linhas com 670 caracteres e outras com menos de 630 precisando
> ser preenchido por "espaços".
>
> Teria como atraves do sed deletar estes últimos 40 caracteres e outras
> adicionar?
>
> Grato
> Jean
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]