grep - 结合 grep 标志
问题描述
我正在尝试查找以“查询”或以下符号开头的行:“>”,但我不知道该怎么做。
如果这是数据集:
query=345
query=4565
brink=980
>ehlhdhdk
>blonk
我只想保留第 1、2、4 和 5 行。我尝试过:grep -e 'query=' filename.txt||grep -F '>' filename.txt > newfile.txt
和:
cat filename.txt | grep -e 'query='||grep -F '>' > newfile.txt
。但是这些不起作用,它们不输出 newfile.txt,而是只输出到终端。
解决方案
您可以使用
grep -E '^(query|>)' filename.txt > newfile.txt
细节
^
- 字符串的开始(query|>)
- 一个匹配的捕获组query
-query
|
- 或者>
- 一个>
字符。
查看在线演示:
#!/bin/bash
s='query=345
query=4565
brink=980
>ehlhdhdk
>blonk'
grep -E '^(query|>)' <<< "$s"
输出:
query=345
query=4565
>ehlhdhdk
>blonk
推荐阅读
- android - 应用更改并重新启动活动(禁用:不兼容的设备 API 级别)
- javascript - 在 AWS Lambda node.js 函数中使用 async/await 引发错误
- android - 如何使用 Firestore 数据库:在 Kotlin 中使用 await() addSnapshotListener?
- javascript - 显示图像使页面空白 React JS
- python - 如何突出显示 Altair 热图中的列?
- unity3d - 混合现实键盘小数点
- makefile - makefiles 隐式规则说文件是最新的,但文件甚至不存在
- python - conda安装成功后无法导入zipline包
- python - python之禅应用于类中的方法
- python - 项目任务管理器 - Python、Pysimplegui