regex - grep 用于在特定位置的特定行中包含特定文本的文件

标签 regex linux grep

我需要在文件的某行(第 1 行)的某个位置(7-8)中查找具有特定字符串(“OB”)的文件的文件名。

最好的方法是什么。

最佳答案

如何使用 head 获取每个文件的第一行,然后使用相应的正则表达式 grep 并输出之前的行以保留文件名:

head -n1 * | grep -EB1 '^.{6}OB'

当然,您必须更改文件选择 - 此处 * - 以满足您的需要。

更新:问题已更新 - 如果您只需要文件名,只需添加另一个 grep 来捕获 head 命令给出的文件名:

head -n1 * | grep -EB1 '^.{6}OB' | grep '==>'

关于regex - grep 用于在特定位置的特定行中包含特定文本的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679589/

相关文章:

javascript - 处理多个 JavaScript 替换匹配项

c# - 多行文本框中的 mask

用于嵌入式 Linux 的 Linux 驱动程序

linux - grep 如何知道它正在写入输入文件?

linux - Grep 记录每秒发生的次数

r - 如何为 r 中的 str_extract 提供多个条件?

regex - 描述正则表达式的上下文无关语法?

java - 优雅地停止正在运行的java程序

java - 其他操作系统中的CMD命令

awk - 如何在两个不同的文本文件中找到相同的单词并使用 bash 打印这些行?