Como analiso uma string?

1

Eu sou novo no bash, e estou criando um script que percorre os arquivos em um diretório e baseado em parte do nome do arquivo, faz alguma coisa com o arquivo, até agora eu tenho isso:

#!/bin/bash
DIR="/Users/me/Documents/import/*"
for f in "$DIR"
do
  t=??????
  echo "Loading $f into $t..."
done

então $f produzirá algo assim: /Users/me/Documents/import/time_dim-1272037430173 disso, eu quero t igual a time_dim , o diretório pode ser comprimento variável e -1272037430173 é um tamanho fixo (é o timestamp do unix btw).

Qual é a melhor maneira de fazer isso?

    
por Russ Bradberry 23.04.2010 / 20:09

3 respostas

4

Não testado:

t='basename $f | sed -e 's/-[0-9]\+$//''
    
por 23.04.2010 / 20:14
0

você também pode fazer: %código% ou

%pr_e%

editado: eu interpretei mal a pergunta

    
por 23.04.2010 / 22:16
0
What is the best way to go about this? 

a "melhor" maneira, usando apenas partes internas do bash,:)

$ s=/Users/me/Documents/import/time_dim-1272037430173
$  echo ${s%-*}
/Users/me/Documents/import/time_dim
$ t=${s%-*}
$ echo ${t##*/}
time_dim
    
por 26.04.2010 / 11:55