如果没有结果,如何停止 grep 创建空文件

2024-04-13

我正在比较两个文件的结果,其中一个文件中的行不在另一个文件中,使用grep -v -f file1.txt file2.txt > result.txt

假设我的文件看起来像;

文件1.txt

alex
peter
zoey

文件2.txt

alex
john
peter
zoey

So result.txt应包含john

这将在 Jenkins 作业中运行,而詹金斯最终对创建一个空的作业不满意result.txt如果两者之间没有差异。

我不能只进行盲差异/无差异输出,我特别需要知道哪些行不同(如果有)。

有没有一种更简洁的方法来运行此命令,以便在没有结果的情况下不创建文件?


编辑:尝试使用安静选项 -q 有条件地运行命令(当找到一个匹配项时将退出并节省时间)。然后,一旦找到第一个匹配项(意味着文件不同),您将运行相同的命令并将其输出到文件中。

试试这个:(编辑取自查尔斯·达菲的评论)

#!/usr/bin/env bash

if grep -qvf file1.txt file2.txt 
then
   grep -vf file1.txt file2.txt > output.txt
   echo "Differences exist. File output.txt created." 
else
   echo "No difference between the files detected"
fi

或者用更少的代码和一行:

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

如果没有结果,如何停止 grep 创建空文件 的相关文章

  • bash双括号问题

    我对 bash 脚本非常陌生 在使用双括号时遇到了问题 我似乎无法让它们在 Ubuntu Server 11 10 中工作 我的下面的脚本位于 if test sh 中 bin bash if 14 14 then echo FOO fi
  • xdotool 类型需要很长时间并导致整个桌面冻结

    我一直在使用xdotool type过去只能在快捷方式上输入耸肩xdotool type 这可行 但总是需要相当长的时间 并导致整个桌面冻结 完全冻结 而不仅仅是输入 几秒钟 不过并没有太打扰我 现在我需要一种方法来从文件中读取内容 对其进
  • shell 脚本:错误的解释器:使用 pwd 时没有这样的文件或目录

    我想用 for 循环遍历目录中的文件 但这出现了 echo bad interpreter No such file or directory code bin bash count 0 dir pwd echo dir FILES ls
  • 退出 bash 脚本但保持进程运行

    我正在运行服务器 需要使用参数执行以下命令 这些脚本目前工作得很好 但问题是当我运行脚本时我无法返回到控制台 它在控制台中保持运行 如果我强行停止它 那么该过程也会停止 我想继续运行该进程并返回到控制台 bin sh php home st
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • IFS 分隔一个字符串,如“Hello”,“World”,“this”,“is,一个无聊”,“line”

    我正在尝试解析 csv 文件 但 IFS 遇到一些问题 该文件包含如下行 Hello World this is a boring line 各列用逗号分隔 因此我尝试使用以下代码分解该行 IFS read r a tempArr lt l
  • Bash 脚本 - 迭代 find 的输出

    我有一个 bash 脚本 其中需要迭代 find 命令输出的每一行 但似乎我正在迭代 find 命令中的每个单词 以空格分隔 到目前为止我的脚本看起来像这样 folders find maxdepth 1 type d for i in f
  • `docker run` 输出到 bash 变量 - 奇怪的行为

    我看到一些奇怪的行为从docker run到 bash 变量中 简单的例子 bin bash PWD docker run rm ti ubuntu pwd 2 gt 1 also tried with PWD docker run wit
  • bash 自动完成:添加可能完成的描述

    是否可以使 bash 自动完成功能看起来像 Cisco IOS shell 中一样 我的意思是为每个完成添加简短的描述 如下所示 telnet 10 10 10 TAB Pressed 10 10 10 10 routerA 10 10 1
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我
  • 如何在 bash 中结合超时和 eval 命令

    为了执行存储在变量中的命令eval使用命令 gt a echo e a nb wc l gt eval a 2 但如何才能与它结合起来呢 timeout命令 我尝试过以下操作 这给了我错误的输出 gt timeout 10 a a b wc
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 如何替换“docker run”命令中的变量值

    我正在使用 bash 脚本并尝试分配指纹值 如下所示 export FINGERPRINT D0 19 C5 80 42 66 56 AC 6F docker run rm i v var run docker sock var run d
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 我的 unix 脚本出了什么问题

    bin bash while echo n Player s name read name name ZZZ do searchresult grep name playername if searchresult 0 then echo
  • 保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

    有什么好的方法可以覆盖bash陷阱处理程序不会永久破坏可能已设置或尚未设置的现有处理程序 动态管理任意陷阱例程链怎么样 有没有办法保存陷阱处理程序的当前状态 以便以后可以恢复 在 Bash 中保存和恢复陷阱处理程序状态 我将提交以下堆栈实现
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • POSIX SH 构建循环变量,其元素包含空格

    这是我需要的代码 bin sh x1 a1 a2 x2 b1 b2 list SOMETHING for x in list do echo x done 以及我想要的输出 a1 a2 b1 b2 问题是 应该做什么SOMETHING是 我
  • 未找到命令“ember”

    看来我搞砸了 ember cli 安装 我已经使用 sudo 安装了 npm 但是在阅读了 npm 上 ember cli 和 sudo 的一些问题后 我按照此处的说明卸载并重新安装https gist github com isaacs

随机推荐

  • 无法插入新的插座连接[重复]

    这个问题在这里已经有答案了 无法插入新的插座连接 找不到该类的任何信息并且未显示任何名为 ViewController 的类 我做过的解决方案 重新启动 XCode 重新启动系统 从 Library developer xcode 中删除了
  • “密度”曲线叠加在直方图上,其中垂直轴是频率(又称计数)或相对频率?

    当纵轴是频率或相对频率时 是否有一种方法可以叠加类似于密度曲线的东西 不是实际的密度函数 因为面积不需要积分为 1 以下问题类似 ggplot2 具有正态曲线的直方图 https stackoverflow com questions 69
  • ggplot中的数据顺序和颜色

    我在数据框中有经理的资产 Date C B A E D 2011 06 30 20449251 2011906 0 0 0 2011 09 30 20766092 1754940 0 0 0 2011 12 31 15242138 1921
  • 如何获取下载文件夹的(绝对)路径?

    在 Flutter 项目中 如何获取 Android 设备中 Download 文件夹的 绝对 路径 我的下载文件夹接下来是 闹钟 Android 数据 DCIM 文档 电影 音乐 通知 图片 设备 GALAXY S8 SM G955F 安
  • 条件运算符与 if then else [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 sllauncher 安装 Silverlight 4 应用程序不起作用

    我正在尝试使用 sllauncher 离线安装 XAP 文件 但它不起作用 UPDATE 我删除了应用程序的所有现有引用和文件夹 现在它似乎可以正常工作 我将保留这个 因为它有一些关于如何解决这个问题的好线索 C Documents and
  • 如何使用 /htdocs 目录结构中的文件设置 SVN

    我在处理 php 文件时如何设置 Subversion 时遇到了一个小问题 我将所有文件存储在 c www nameOfProject htdocs 中 并为每个项目设置虚拟主机 c www project1 htdocs index ph
  • 响应式菜单/小型设备:单击菜单项时关闭/折叠菜单

    我想更改小型设备上 Twitter 引导菜单的行为 以通过单击菜单项或单击菜单按钮来关闭展开的菜单 目前 默认 我只能通过单击右上角的菜单按钮来折叠它 无论我是否单击了链接 菜单项 我该怎么做呢 我无法从 TB 文档中弄清楚这一点 并且在互
  • 这个递归 SQL CTE 究竟是如何工作的?

    有人可以向我解释一下这个 SQL 查询到底是如何工作的吗 WITH recursive n n AS SELECT 2 n UNION ALL SELECT n 1 FROM n WHERE n lt 1000 SELECT a n FRO
  • 有没有办法在转码之前使用 ffmpeg 确定文件的编码?

    我计划使用 ffmpeg 确保上传到我网站的所有视频文件都编码为 mp4 h264 我不想自动处理每个文件 而是希望通过仅处理那些还不是 mp4 h264 的文件来最小化处理开销 有没有一种简单的方法可以使用 ffmpeg 或其他命令行实用
  • 如何判断一个文件是否可以删除?

    我怎么能够check我可以用Java删除文件吗 例如 如果一个文件test txt在另一个程序中打开我无法删除它 我必须在实际删除之前知道它 所以我不能这样做 if file delete And srcFile canWrite 也不工作
  • 在 ES6 生成器函数中使用 return

    我无法弄清楚如果您使用 return 语句而不是 Yield 会发生什么 function gen const val yield someAsyncFn assert equal val 4 return val 回报率与收益率有何不同
  • Visual Studio代码侧边栏垂直引导线(自定义侧边栏)

    有人知道 Visual Studio 代码的扩展可以像 netbeans 一样在侧边栏 用于文件和文件夹 上显示垂直指南吗 或者vscode中有一些设置吗 Netbeans 快照 https i stack imgur com CFJsw
  • .Net 哪里可以找到 BinaryFormatter 序列化格式的官方规范?

    我想知道BinaryFormatter的序列化格式是什么 我发现这个网站 http primates ximian com lluis dist binary serialization format htm其中提供了一些很好的信息 但它是
  • Applescript 获取正在运行的应用程序列表?

    Applescript 新手问题又来了 我正在尝试创建一个小 applescript 它允许我从当前运行的应用程序列表中选择多个项目 然后退出这些选定的应用程序 像这样的东西是可行的 但不必单击每个对话框 从列表中进行选择会更容易 tell
  • 将 jQuery 脚本与 Angular 6 CLI 项目结合使用

    我正在使用 Angular 6 开发一个应用程序 我的应用程序使用明顿主题 http coderthemes com minton dark index html 我将所有主题脚本包含在index html我的角度项目的文件 但是当我登录或
  • 我们可以使用 python 生成卡方检验的列联表吗?

    我正在使用 scipy stats chi2 contingency 方法来获取卡方统计数据 我们需要传递频率表 即列联表作为参数 但我有一个特征向量 想要自动生成频率表 我们有这样的功能吗 我目前正在这样做 def contigency
  • PHP OOP MySQL 编程

    我是 PHP 编程的初学者 需要帮助解决一个小问题 请看下面的代码 PHP Code
  • Android 8.0 Oreo - 帐户

    在我的应用程序中 我需要知道是否有任何 Google 帐户或任何三星帐户 在 Android 7 之前 可以通过以下方式轻松获取此信息 Account accounts AccountManager get getContext getAc
  • 如果没有结果,如何停止 grep 创建空文件

    我正在比较两个文件的结果 其中一个文件中的行不在另一个文件中 使用grep v f file1 txt file2 txt gt result txt 假设我的文件看起来像 文件1 txt alex peter zoey 文件2 txt a