Substitua /
por _
:
tag=${tag//\//_}
Estou tentando nomear arquivos com base em seus nomes de diretório pai. Com um arquivo em ./dir*/dir*/
, gostaria de nomear o arquivo "dir*_dir*"
ou "dir*dir*"
(além de alguns textos e extensões anexados constantes, mas isso não é relevante para a pergunta). Eu tenho algo parecido com:
for file in ./dir*/dir*/*GABA*.dat; do
tag=${file%/*}
tag=${tag} #here, I believe the value of the variable will be "dir*/dir*",
so this is where I was thinking to remove the '/'
tag=$(echo "$tag" | tr '[:upper:]' '[:lower:]')
mv -- "$file" "./GABA/${tag}.dat"
done
Não estou pedindo especificamente a avaliação do código geral, embora isso também seja bem-vindo (ele é executado de forma adequada em outro contexto semelhante), mas particularmente como atualizar minha variável "tag" para remover o "/" entre %código%. Obrigado!
com zsh
:
autoload zmv # best in ~/.zshrc
zmv -n '(dir*)/(dir*)/*GABA*.dat' 'GABA/${(L)1}${(L)2}.dat'
Remova -n
se estiver feliz.
(L)
é um sinalizador de expansão de parâmetro para converter a expansão para minúscula.
Tags shell-script filenames