Extrai uma parte específica do caminho de um arquivo

0

Tomando este caminho para um arquivo: words/05_díj/díj_pct.txt como eu posso extrair somente esta parte? 05

O que eu quero é usar essa parte como um valor para uma variável externa para a execução de um script awk.

Exemplo:

for f in words/*/*_pct.txt
do
  #So, I want to extract "05" from $f

  #To use it here
awk -v var -f script.awk "$f" >> words/results.txt
done
    
por Firefly 07.03.2016 / 09:39

1 resposta

0

Usando a expansão de parâmetros :

for f in words/*/*_pct.txt; do
  n=${f#*/}   # Remove everything till the first slash
  n=${n%%_*}  # Remove everything from the first underscore to the end
  awk -v var="$n" -f script.awk "$f" >> words/results.txt
done

Observe que você precisa citar -v var="$n" e, se $n contiver sequências de escape, elas serão expandidas.

    
por 07.03.2016 / 09:48