#unix #ksh
#unix #ksh
Вопрос:
После применения некоторых команд у меня есть набор данных, как показано ниже
graph_name=abc
group_name=def
factory=xyz
export a=1
export b=2
export c=3
Теперь, как я могу получить приведенный ниже результат
graph_name=abc
export a=1
export b=2
export c=3
Мне нужны все инструкции export в дополнение к записи, содержащей только graph_name.
Комментарии:
1. Вам нужна только первая строка «graph_name», потому что ее значение содержит экспортированные имена переменных?
2. нет, это не так, я задал это в соответствии с моим требованием. Спасибо, Джек.
3. Ах, я прочитал «имя_группы» как другую запись «имя_графа».
Ответ №1:
sed -n -e '/^graph_name=/p' -e '/^export /p' your-file
Это не печатается по умолчанию ( -n
); затем он явно печатает те строки, которые соответствуют тому, что вы хотите.
Ответ №2:
Простая команда grep:
grep -w -e "graph_name=" -w -e "export" tmp FILENAME
Ответ №3:
некоторые решения awk:
awk '/^graph_name=/ || /^export /' filename
awk '/^(graph_name|export)>/' filename
awk -F '[= ]' '$1 == "graph_name" || $1 == "export"' filename
Ответ №4:
Попробуйте egrep, чтобы соответствовать любому из нескольких шаблонов, разделенных символом канала. Здесь я ищу строки, начинающиеся с «graph_name» или «export»:
egrep "^graph_name|^export" your_file