linux - 文件中带有特殊字符的 grep 字符串
问题描述
我的文件包含:
/*uid:68160*/\n SELECT
/*uid:68160*/SELECT
我试过以下:
grep -vF "/[*]uid::[[:digit:]][*]/SELECT"
这有助于删除第二行。如何通过 grep 删除第一行也试过:
grep -vF "/[*]uid::[[:digit:]][*]/\n SELECT"
解决方案
假设您有这样的文字,
s='/*uid:68160*/\n SELECT
/*uid:68160*/SELECT
Text'
并且您想删除第 1 行和第 2 行,您可以使用
grep -Ev '/[*]uid:[[:digit:]]+[*]/(\\n *)?SELECT'
查看在线grep
演示
细节
-Ev
-E
启用 POSIX EREv
并将否定结果/[*]uid:[[:digit:]]+[*]/(\\n *)?SELECT
- 火柴/[*]uid:
- 一个/*uid:
字符串[[:digit:]]+
- 1+ 位数[*]/
- 一个*/
字符串(\\n *)?
- 一个可选组,匹配 1 次或 0 次出现的\n
双字符组合,然后匹配任何 0 或多个空格SELECT
- 一个字符串
推荐阅读
- regex - 使用 REGEX 从 csv 文件中删除前两列
- python - 无法在python3中打开文件
- c# - 如何在 Google Cloud Build 中正确设置多个环境
- powershell-4.0 - 如何使用 Powershell 脚本单击网页中的复选框?
- java - 记忆具有多个变量的回溯问题
- javascript - 如何从 vite lib 构建中获取全局引用
- javascript - node.js 应用程序在本地工作,而不是在 Heroku 部署
- tcp - 针对缓冲区溢出和数据包崩溃的内核 TCP 调整
- c - 我正在尝试学习 C 语言的子进程和父进程
- .net - 管理组织的内部 .Net 依赖项