使用 ksh 读取文件中枚举的所有元素



需要从枚举中读取所有元素。 假设枚举.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,以便!不会触发历史记录扩展

最新更新