1

Я хотел бы извлечь имя из другого предопределенного файла и использовать его в моем сценарии оболочки.

Читаемый файл будет в ./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 ответа2

2

Что именно у вас не работает с grep? Попробуйте посмотреть на команду вырезать . Вы смотрите на что-то вроде:

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

это должно проанализировать YourFileNameHere и найти строку, содержащую | Name | затем направьте эту строку к команде cut , которая выберет 4-й токен между (пробел) разделители, которые по вашему описанию должны быть D0_50_H04

1

попробуйте это: awk '\Modelname\ {print}' directory/of/the/file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .