使用sed,grep在特殊字符之间打印

时间:2019-07-09 00:30:58

标签: linux bash sed grep

我需要在这些字符之间打印字符串。...

atob('       ')

我在第二部分中使用=作为尝试以等号(我试图获取的base64字符串结尾)上的代码停止代码。

我使用此脚本,但是它将打印包含上述字符的整行。我只需要它们之间的数据。

  sed -n '/atob/,${p;/==/q;}'

感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

这项工作(已针对GNU sed 4.2.2进行了测试)吗?

import xml.etree.ElementTree as ET

def display_book():

    root = ET.parse(source="library.xml")

    info = root.iter("catalog")

    for elem in info:
        books = elem.findall("book")
        for book in books:
            print book.attrib['id']


# Main
display_book()

其中b.txt是

 sed -n -e "s/atop('\(.*\)')/\1/p" b.txt

或者您可以尝试awk

atop('safdasdfasf')

(对gnu awk 4.0.2进行了测试,并添加了Jotne的建议)

答案 1 :(得分:0)

和另一个有效的sed:

echo "atop('safdasdfasf')" | sed -r "/atop/ s/^[^']+'([^']+)'.*/\1/"
safdasdfasf