[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]