Como recuperar um nome de outro arquivo com um script Bash?

1

Gostaria de pegar um nome de outro arquivo predefinido e usá-lo no meu shell script.

O arquivo que está sendo lido estaria em ./docs/description.org e o formato (uma tabela em .org format) é:

...some text
| Time | 12.00      |
| Name | D0_50_H04  |
| blah | blah       |
... more text

O nome não terá espaços (será alfanumérico + sublinhado), e será circundado pelo caractere pipe | , na coluna que segue diretamente a única linha que contém a palavra "Nome".

Eu gostaria de ler o valor Name (neste caso "D0_50_H04") e usá-lo dentro de um script de shell.

O script My Bash é parecido com:

#!/bin/bash

...some stuff

#Read in the model name
ModelName = #how do I do this??

#Create that directory
mkdir $SCRATCHDIR/$ModelName
cd $SCRATCHDIR/$ModelName

..continue working in that new dir

Eu estava pensando em usar o grep, mas não consegui que ele funcionasse corretamente.
Alguém poderia ajudar?

    
por Madeleine P. Vincent 24.06.2014 / 15:40

2 respostas

1

tente isso: awk '\Modelname\ {print}' directory/of/the/file

    
por 24.06.2014 / 15:55
2

O que exatamente não funciona para você com o grep ? Tente ver o comando cortar . Você está olhando para algo como:

grep YourFileNameHere -e "| Name |" | cut -d " " -f 4

isso deve analisar YourFileNameHere e procurar a linha que contém | Name | , em seguida canalize essa linha para o comando cut que escolherá o quarto símbolo entre os delimitadores (espaço), que de acordo com sua descrição deve ser D0_50_H04

    
por 24.06.2014 / 16:10