首页 > 解决方案 > 使用 sed,grep 在特殊字符之间打印

问题描述

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

atob('       ')

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

我使用这个脚本,但它打印包含上述字符的整行。我只需要介于两者之间的数据。

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

我很感激任何帮助。谢谢你。

标签: linuxbashsedgrep

解决方案


这是否有效(针对 GNU sed 4.2.2 测试)?

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

b.txt 在哪里

atop('safdasdfasf')

或者你可以试试 awk

awk -F\' '/atop/ {print $2}' b.txt 

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


推荐阅读