Как получить имя из другого файла с помощью скрипта Bash?
Я хотел бы извлечь имя из другого предопределенного файла и использовать его в моем сценарии оболочки.
Читаемый файл будет в ./docs/description.org
и формат (таблица в .org
формат) это:
...some text
| Time | 12.00 |
| Name | D0_50_H04 |
| blah | blah |
... more text
В названии гарантированно не должно быть пробелов (оно будет буквенно-цифровым + подчеркивание), и оно будет окружено пробелом |
символ, в столбце непосредственно после единственной строки, содержащей слово "Имя".
Я хотел бы прочитать значение имени (в данном случае "D0_50_H04") и использовать его в сценарии оболочки.
Мой скрипт Bash выглядит примерно так:
#!/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
Я думал об использовании grep, но я не мог заставить его работать правильно.
Кто-нибудь сможет помочь?
2 ответа
Попробуйте это: awk '\Modelname\ {print}' directory/of/the/file
Что именно у вас не работает с grep? Попробуйте посмотреть на команду вырезать. Вы смотрите на что-то вроде:
grep YourFileNameHere -e "| Name |" | cut -d " " -f 4
это должно разобрать YourFileNameHere
и найдите строку, содержащую | Name |
затем направить эту линию к cut
команда, которая выберет 4-й токен между (пробел) разделители, которые по вашему описанию должны быть
D0_50_H04