需要从枚举中读取所有元素。 假设枚举.txt有以下条目
YesOrNo ::= INTEGER {
yes(0),
no(1),
unknown(2)
}
EnOrDis ::= INTEGER {
enable(0),
disable(1),
unknown(2)
}
现在我可以轻松地从 enum 中 grep YesOrNo.txt通过 grep -w -i YesOrNo 枚举.txt但我需要阅读该枚举的元素 YesOrNo.我试图让"{"和"}"之间的元素得到结果.txt。
start_line = $(grep -i -w -n YesOrNo enum.txt)
end_line = $(grep -A 10 -w -i YesOrNo enum.txt | grep -w -n -m1 } enum.txt)
sed -n '$start_line,$end_linep' enum.txt > result.txt
但是我没有得到end_line因为我的太阳太阳不支持-A和-m选项。请让我知道在两个大括号之间阅读的任何其他方法,即 { ,}。
假设大括号与枚举元素不在同一行上:
enum="YesOrNo"
sed -n "/$enum *::=/,/}/ {/[{}]/!p}" enum.txt
yes(0),
no(1),
unknown(2)
如果在 shell 提示符下执行此操作,则可能需要set +H
,以便!
不会触发历史记录扩展