Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. Ola,

    Supondo que eu tenho um variavel, por exemplo:
    str=abc.def.ghi

    Por exemplo, eu preciso trocar o . por , ... ou trocar abc por xyz.
    Como eu faco isso?

  2. man tr



  3. Obrigado pela dica.
    So tem uma coisa que nao consegui fazer: supondo que preciso trocar o "." por "_" em todos os nomes de arquivos de um diretorio, mas nao posso trocar o "." da extensao.

    Digamos que tenha um arquivo com este nome:
    "abc.xyz.txt"
    e gostaria de trocar para:
    "abc_xyz.txt"
    Eu tentei fazer algo do tipo:
    ls -1 *.txt > lixo
    # a linha abaixo foi feita para trocar . por Q, para que depois volte atras a extensao
    cat lixo | tr ".txt" "Qtxt" > lixo2
    # a linha abaixo foi feita para trocar todos os . por _
    cat lixo2 | tr "." "_" > lixo3
    # esta linha voltaria a extensao
    cat lixo3 | tr "Qtxt" ".txt" > lixo4

    entao eu usaria o lixo4 para fazer os "mv"s.

    Contudo, quando faco o 1o. tr, ele troca TODOS os . por Q. Como eu faco para ele entender que quero trocar EXATAMENTE a string .txt por Qtxt? Olhei no "man tr" e no "info tr" e nao achei um jeito de fazer troca exata de strings.

  4. #4
    d294683

    em um diretorio assim:

    drwxr-xr-x 2 root root 4096 Aug 21 14:30 .
    drwxr-xr-x 17 root root 4096 Aug 21 14:21 ..
    -rw-r--r-- 1 root root 743 Aug 21 14:29 12.34.56.78.90.txt
    -rw-r--r-- 1 root root 660 Aug 21 14:29 123.456.789.txt
    -rw-r--r-- 1 root root 504 Aug 21 14:23 abc.123.txt
    -rw-r--r-- 1 root root 580 Aug 21 14:23 abc.456.txt
    -rw-r--r-- 1 root root 428 Aug 21 14:22 abc.efg.txt
    -rw-r--r-- 1 root root 6 Aug 21 14:21 a.txt
    -rw-r--r-- 1 root root 12 Aug 21 14:21 b.txt
    -rw-r--r-- 1 root root 18 Aug 21 14:21 c.txt

    uma maneira seria esta:

    ls | sed s/[.]txt$/---/ | sed s/[.]/_/g | sed s/---/.txt/

    vc poderia filtrar/substit assim ... por exemplo ... explore mais o SED, para trocar,remover ou inserir, manipulando string ...

    Boa sorte.



  5. #5
    d294683

    ... desculpe ... continuando ...

    a saída seria esta:

    12_34_56_78_90.txt
    123_456_789.txt
    abc_123.txt
    abc_456.txt
    abc_efg.txt
    a.txt
    b.txt
    c.txt






Tópicos Similares

  1. Respostas: 30
    Último Post: 18-06-2013, 18:17
  2. Respostas: 9
    Último Post: 01-01-2013, 18:21
  3. Shell script para monitorar um evento no mouse ou no teclado
    Por gringolito no fórum Linguagens de Programação
    Respostas: 1
    Último Post: 16-01-2012, 15:25
  4. Respostas: 2
    Último Post: 01-10-2006, 17:20
  5. Acessar uma VPN dentro de outra VPN. Como ?
    Por thiagomz no fórum Servidores de Rede
    Respostas: 0
    Último Post: 31-03-2004, 08:35

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L