我有一个这样的文本文件:
125
126
127 {
566
567
568
569 # blah blah
570 { #blah blah
700
701 {
数字左对齐,模式在递增的意义上总是相同的,末尾有花括号。我只需要捕获起始数字。大括号总是被找到并限制在序列结尾。开始文件的名称以“125”开头。
简而言之,我需要:
125
566
700
我想出了什么:
grep -A1 '{' | grep -v '{' | grep -oE '(^[0-9]+?)'
但这省略了“125”,但我通过在头部添加换行符并插入 {
来克服。
我希望将其简化为一个正则表达式。
欢迎提出建议和更好的算法
最佳答案
awk 'BEGIN {p=1} p==1 {print $1;p=0} $0~/{/ {p=1}'
Output:
125
566
700
鉴于上面的文件格式,您可以使用 awk 和变量/标志来跟踪何时找到空缺 {
关于bash - 从文件中捕捉序列的开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413490/