Unix 'find' + 'grep' 语法与 awk

2024-04-07

我使用这一行在我所在目录及其所有子目录的文件中查找短语“B206”。

find . -exec grep -s "B206" '{}' \; -print 

当它尝试读取某些文件并实际上将 putty 中的标题栏更改为一堆奇怪的字符时,它会崩溃

例如,当它遇到子目录中的 jpg 文件时,它总是崩溃。标题栏发生变化,屏幕中出现:

ÐF»*rkNQeË+Z׳kU£~MÞçÄZ½ªéúýØâÑn¡[U+Þ4ªÒ9/ê£<ú¯4}[IÓ­îÃ¥K»G%ݳ¢

迫使我按 Ctrl+C 返回提示符,然后退出。

有什么方法可以将代码添加到此行以排除 jpg 文件吗?更好的是,我可以在其中添加要排除的扩展列表的一段代码?


EDIT:
-not & -I do not work for me
I found this similar question https://stackoverflow.com/questions/221921/grep-exclude-include-syntax-do-not-grep-through-certain-files also related somewhat to mine

没有理由使用find: grep带有递归选项,-r。要获取匹配的文件名列表(而不是所有文件中所有匹配行的列表),您可以使用-l选项。如果你想完全忽略所有二进制文件,你可以使用--binary-files=without-match选项。如果您只想忽略具有特定扩展名的文件,可以使用--exclude选项,例如--exclude=*.{jpg,jpeg}忽略所有以以下结尾的文件.jpg or .jpeg。因此,您应该能够通过以下方式获得您想要的东西:

grep -r -l --binary-files=without-match .

现在,您在评论中提到您的版本grep没有-r or -l选项。不幸的是,我建议获取更新版本grep(最好是 GNU 变种)。

进一步说明:如果您使用find -exec,你应该使用+结束命令而不是分号,例如:

find . -exec grep options '{}' '+'

通过使用+, find只会分叉一个进程,并将所有匹配的文件名作为命令行参数传递给一个实例grep。只要您没有一百万个匹配文件(这将创建一个远远超出 shell 处理能力的命令行),这将会快得多。如果您使用分号代替,findfork 一个新进程each匹配文件,对于大量文件来说这确实很慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unix 'find' + 'grep' 语法与 awk 的相关文章

  • grep --include 命令在 OSX Zsh 中不起作用

    我正在关注最佳答案如何在 Linux 上查找包含特定文本的所有文件 https stackoverflow com questions 16956810 finding all files containing a text string
  • 如何 grep 查找同一行中存在的两个单词? [复制]

    这个问题在这里已经有答案了 如何 grep 查找包含两个输入单词的行 我正在寻找包含这两个单词的行 我该怎么做 我尝试过这样的管道 grep c word1 grep r word2 logs 它只是在第一个管道命令之后卡住了 Why 为什
  • 当还必须切换用户时使用 JSch 到 SFTP

    我在 Java 客户端中使用 JSch 连接到远程服务器并使用 SFTP 获取一些文件 以下代码对我来说运行良好 JSch ssh new JSch JSch setConfig FileTransferConstants STRICT H
  • 与 MySQL 中的 SQL Server EXCEPT 运算符类似的功能吗?

    MySQL中是否有类似的操作数 函数 命令EXCEPT http msdn microsoft com en us library ms188055 aspxSQL Server 中的操作数 EXCEPT返回左侧查询中未在右侧查询中找到的任
  • gprof 报告没有累积时间

    我正在尝试在运行 OSX 10 5 7 的计算机上使用 gprof 分析 C 应用程序 我以通常的方式使用 g 进行编译 但使用 pg 标志 运行应用程序并尝试使用 gprof 查看调用图 不幸的是 我的调用图包含所有时间列的全零 被调用
  • 在 shell 脚本中禁止输出到屏幕

    你好 我写了一个小脚本 usr bin ksh for i in DAT do awk BEGIN OFS FS 3 353 3 353861958962 print i gt gt i changed awk 3 353 i change
  • '+=' 的含义

    我对 C 的语法感到困惑 有什么用 The 语法可以以不同的方式使用 SomeEvent EventHandler 向事件添加处理程序 SomeVariable 3 相当于 SomeVariable SomeVariable 3
  • 使用python远程执行shell脚本

    有没有一种方法可以让我在 Windows 上使用 Python 来执行位于远程 Unix 计算机上的 shell 脚本 P S 抱歉编辑晚了 我确实知道 Paramiko 但我想知道是否有办法在没有它的情况下做到这一点 对于初学者来说 可以
  • 如何让 Ruby 的 Find.find 遵循符号链接?

    我有一个文件层次结构 一些子目录是相对符号链接 我在用Ruby s Find find http apidock com ruby Find爬行这些目录并找到一些特定的文件 但是 它不会查找任何符号链接的目录 它遵循符号链接的文件 看着源代
  • find 命令的“exec”功能可以在后台启动程序吗?

    我想做这样的事情 find iname Advanced Linux Program exec kpdf 可能的 还有其他类似的方法吗 首先 它不会像你输入的那样工作 因为 shell 会将其解释为 find iname Advanced
  • 用于解析文件( csv )并逐行处理的 Shell 脚本[重复]

    这个问题在这里已经有答案了 您好 需要一个 shell 脚本来解析 csv 文件 逐行解析 然后逐个字段 该文件将如下所示 X1 X2 X3 X4 Y1 Y2 Y3 Y4 我需要提取这些 X1 X2 我写了一个脚本 但如果行超过一行 它就会
  • 用于搜索内部文件的 ssh 命令

    几周前 我的两个网站可能被 ftp 暴力攻击所利用 破坏了我网站的许多文件 我发现他们通常会在js或php文件中插入以下代码 Trojan code removed as irrelevant to this question 我想通过 s
  • 使用 grep 仅打印上下文

    Using grep http www computerhope com unix ugrep htm 您可以打印与您的搜索查询匹配的行 添加一个 C选项将打印两行周围的上下文 如下所示 gt grep C 2 lorem some con
  • 让子进程等待直到收到父进程的信号

    我想从父级创建 N 个子级 我希望所有的孩子同时开始 一个功能 测量时间 因此 我将该函数放入信号处理程序中 当父级完成创建 分叉 所有子级时 它会向所有子级发送信号 使用kill children id 以让 make 开始 代码如下 但
  • 使用文本框搜索 datagridview 中的列 (vb.net)

    如何使用文本框搜索 datagridview 中的列 我正在使用 vb net 2010 我有一个带有数据源的 Datagridview 下面是我用于填充 datagridview 的代码 网格视图将有 4 列 Private Sub Lo
  • 如何在bash中使用echo和find?

    我有10个文件 我可以列出它们find type f我想要实现的目标是在使用 find 命令找到所有 10 个文件后向它们发送一条消息 我所尝试过的 find type f exec echo This file found gt gt 逻
  • 在 Mercurial 中配置 eol 扩展时出现问题

    我正在尝试将 UNIX 托管的 Mercurial 存储库克隆到 Windows 计算机 我希望使用eol扩展名 以便我在服务器上以 LF 结尾的文本文件在克隆到 Windows 计算机时具有 CRLF 以前我用过win32文本扩展效果很好
  • 使用 ls 和 grep 列出具有特定扩展名的文件

    我只想从当前目录获取文件 并且只输出 mp4 mp3 exe 文件 没有其他内容 所以我想我可以这样做 ls grep mp4 grep mp3 grep exe 但不会 因为第一个 grep 将仅输出 mp4 因此其他 2 个 grep
  • 如何根据操作系统系列拥有不同的依赖关系

    我正在编写一个跨平台库 它具有特定于平台的依赖关系 一个用于类 UNIX 平台 一个用于 Windows 这些板条箱仅在特定平台上编译 因此我不能正常地将它们全部添加到依赖项下 在我实际使用的 Rust 代码中cfg属性 例如 cfg un
  • 在 JavaScript 中使用科学计数法的陷阱

    这个问题是not寻求开发人员代码格式化意见 就我个人而言 我更喜欢在 JS 代码中使用科学计数法 因为我相信它更具可读性 为我 6e8比600000000 话虽这么说 我只是在寻找在 JS 中以科学记数法指定数字的潜在风险和缺点 我在野外并

随机推荐