regex - 匹配文件内的字符串并返回结果

标签 regex string bash shell grep

尝试在 .db 文件中搜索字符串时遇到一些特殊问题。我尝试的方法是使用 grep,它显然找到了字符串,尽管这是输出:

$ grep "ext" *.db
Binary file enormous.db matches

这有几个问题:

  1. 我需要返回实际匹配的字符串。
  2. 我只想返回匹配字符串中的特定字符串
  3. 文件名发生变化,因此仅扩展名匹配
  4. 有多个有效扩展名(ext、bin、fck)

The thing that differentiates the string I'm looking for apart from the others is that it always contains some random character followed by a hexadecimal 02, then the filename.

/File One.ext÷ïAnother File.ext#TheFile.ext◊®®®®® Another.extÆππ∫ MoreFiles.ext|Random.extª@N&Q/Path/To Some/file.ext

在上面可怕的困惑中是TheFile.ext,我希望捕获它(十六进制如下所示)。也许 grep 不是执行此特定任务的正确工具?我不确定,但愿意接受想法 - 谢谢。

2F46696C65204F6E652E65787400D60F950017416E6F746865722046696C652E657874001003230254686546696C652E65787400D70FA80FA80FA80FA8000F0FA80020416E6F746865722E65787400AE0FB9000FB9000FBA00204D6F726546696C65732E6578747C00000000000000000E52616E646F6D2E65787400BB0C030701404E00000000000003260351012F506174682F546F20536F6D652F66696C652E657874

最佳答案

grep 不同平台之间差异很大。以下是在 GNU 和 OS X 上执行此操作的方法:

$ grep -ao '[[:print:]]*\.ext' file.bin
/File One.ext
Another File.ext
TheFile.ext
 Another.ext
 MoreFiles.ext
Random.ext
/Path/To Some/file.ext

如果您发现它不起作用,请说明您尝试在哪个平台上使用它。

关于regex - 匹配文件内的字符串并返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30993500/

相关文章:

python - CountVectorizer token_pattern 不捕获下划线

JavaScript 匹配非零或以零开头的数字

bash - 如何在 :! bash 后重新进入 Vim?

html - 如何使用 shell/bash 将 txt 转换为 html 格式

c# - 正则表达式模式问题

ruby - 如何在 Ruby 中定义类级常量正则表达式以供外部类使用

regex - 具有一个或多个 1234 实例但没有其他数字的行的 egrep 命令?

MySQL:无法正确将字符串值与日期进行比较

java - 如何在 Java 中比较字符串?