Não testado:
t='basename $f | sed -e 's/-[0-9]\+$//''
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?
você também pode fazer:
%código%
ou
%pr_e%
editado: eu interpretei mal a pergunta
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