解析shell脚本中的文本文件并提取列表中的值

时间:2016-11-09 10:09:27

标签: bash

我的文字文件包含以下内容。

def check(string):
    bv = 0
    for s in string:
        bv ^= 1 << ord(s)
    return bv == 0 or bv & (bv - 1) == 0

我想解析文件并提取所有方案并放入列表中。 我怎样才能实现这个shell脚本?

2 个答案:

答案 0 :(得分:0)

假设schemeNameX列表后面会有换行符:

sed -n '/Schemes:/,/^$/p' 

-n标志禁用隐式输出,因此我们可以指定sed仅在一个范围内打印。范围的开始由/Schemes:/定义,它测试此文本出现在行的某处,而范围的结尾由/^$/定义,它测试行是空的。

这也会返回Schemes:行和一个尾随换行符,可以使用headtail轻松删除。

答案 1 :(得分:0)

这是一个带有awk的单行解决方案。

awk 'p && NF {print;} /Schemes:/ {p=1}' NewFile1.txt
schemeName1
schemeName2 
schemeName3

请。照顾&#34; awk vs sed&#34;在网上,你会发现在大多数情况下,awk会更方便而不是sed。