linux - 使用 sed,grep 在特殊字符之间打印
问题描述
我需要打印这些字符之间的字符串....
atob(' ')
我=
在第二部分中使用 a 作为尝试停止等号上的代码(我试图以 base64 字符串结尾。)
我使用这个脚本,但它打印包含上述字符的整行。我只需要介于两者之间的数据。
sed -n '/atob/,${p;/==/q;}'
我很感激任何帮助。谢谢你。
解决方案
这是否有效(针对 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 的建议)
推荐阅读
- r - 使用 Readr read_csv 函数抑制所有消息/警告
- networking - 为什么 Bpf 允许 ether[0:2] 和 ether[0:4] 但不允许 ether[0:3]?
- c# - 搜索一个上传的文档 asp.net core
- android - EditText 奇怪的焦点行为
- c# - 访问实时视频帧
- javascript - 如何在 Firebase 实时数据库中获取子键值
- java - 如何在 Spring Boot 项目中导入 org.springframework.web.servlet.function 包?
- kotlin - Kotlin:多种类型的智能转换
- mysql - 如何在 Knex 中编写 mysql 子查询?
- scala - 从对象中的 val 定义列表