Как получить имя из другого файла с помощью скрипта 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

Другие вопросы по тегам