“grep”命令的退出状态代码

2024-01-06

The grep http://linux.die.net/man/1/grep手动在退出状态部分报告:



EXIT STATUS
       The  exit  status is 0 if selected lines are found, and 1 if not
       found.  If an error occurred the exit status is 2.  (Note: POSIX
       error handling code should check for '2' or greater.)
  

但是命令:

echo ".
..
test.zip"|grep -vE '^[.]'
echo $?

echo "test.zip
test.txt"|grep -vE '^[.]'
echo $?

返回的值始终为 0。我本来期望 1 和 0。我做错了什么?


请记住grep是基于线的。如果任何行匹配,则您获得匹配。 (在你的第一种情况下test.zip匹配(更准确地说:您使用了-v因此您要求的线条与您的模式不匹配,并且test.zip正是这样做的,即与您的模式不匹配。结果你的 grep 调用成功了)。比较

$ grep -vE '^[.]' <<<$'.\na'; echo $?
a
0

with

$ grep -vE '^[.]' <<<$'.\n.'; echo $?
1

注意第一个命令如何输出该行a,即已找到匹配项,这就是退出状态为 0 的原因。将其与第二个示例进行比较,其中没有行匹配。

参考

<<<是这里的字符串:

Here Strings
    A variant of here documents, the format is:

           [n]<<<word

    The word undergoes brace  expansion,  tilde  expansion,  parameter  and
    variable  expansion,  command  substitution,  arithmetic expansion, and
    quote removal.  Pathname expansion and  word  splitting  are  not  per-
    formed.   The  result  is  supplied  as a single string, with a newline
    appended, to the command on its standard input (or file descriptor n if
    n is specified).
   $ cat <<<'hello world'
   hello world

$'1\na'用于获取多行输入(\n被替换为换行符$'string',更多请参见man bash).

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

“grep”命令的退出状态代码 的相关文章

  • Grepping 一个大文件(80GB)有什么方法可以加快速度吗?

    grep i A 5 B 5 db pd Clients eightygigsfile sql 它已经在一个相当强大的 Linux 服务器上运行了一个小时 否则不会过载 grep 有什么替代品吗 关于我的语法有什么可以改进的地方 egrep
  • 匹配 Unix 上文件中的日期

    我有以下内容unix命令 我用它来尝试查找格式中的日期yyyy mm dd在一个文件中 grep i w d 4 d 2 d 2
  • 如何替换 html 标签之间的任何文本

    我在 html 标签之间有文本 例如 td vip td 我将在标签之间添加任何文本 td td 我如何从这些标签中剪切任何文本并将任何文本放在这些标签之间 我需要通过 bash shell 来完成 我怎样才能做到这一点 首先 我尝试获取此
  • 使用正则表达式前瞻,egrep

    如果您的文件包含 apples are good apple cider is also good 为什么会egrep apples app file无法接听任何线路 在 MAC 上使用egrep 2 5 1 扩展正则表达式不具有积极的前瞻
  • xml_grep 从元素获取属性

    是否可以 如果可以 如何 使用 xml grep 从特定元素获取特定属性的值 我似乎只能输出标签之间的信息 example
  • 最有效的不区分大小写的 grep 用法是什么?

    我的目标是匹配属于 Yahoo 的电子邮件地址 域家族 在 nix 系统 我将使用 Ubuntu 中 这些匹配模式的方法中的任何一种都有哪些优点和缺点 如果还有我无法想象的另一种更优雅的解决方案 请分享 他们来了 Use grep有选项 i
  • grep 使用其他文件中的单词匹配行中的特定位置

    我有2个文件 file1 12342015010198765hello 12342015010188765hello 12342015010178765hello 每行包含固定位置的字段 例如position13 17 is for acc
  • 检查文件中是否存在所有多个字符串或正则表达式

    我想检查一下是否all我的字符串存在于文本文件中 它们可以存在于同一行或不同行上 部分匹配应该没问题 像这样 string1 string2 string3 string1 string2 string1 string2 string3 s
  • 仅 Grep 第一个匹配项并停止

    我正在使用 grep 递归搜索目录 并使用以下参数希望只返回第一个匹配项 不幸的是 它返回了不止一个 事实上 我上次查看时返回了两个 似乎我有太多的争论 尤其是没有得到想要的结果 grep o a m 1 h r Pulsanti Oper
  • sh 和 bash 中 pgrep 的区别

    这是一个测试 bash c pgrep f novalidname sh c pgrep f novalidname 11202 Why is pgrep运行时给出输出sh 据我所知 我的计算机上没有名为novalidname 这可能是一个
  • 如何使用grep提取子字符串? [复制]

    这个问题在这里已经有答案了 可能的重复 从字符串中提取正则表达式结果并将其写入变量 https stackoverflow com questions 3148558 extract regexp result from string an
  • 如何在unix中查找字符串之间包含多个空格的行?

    我有像这样的行 1 Harry says hi 2 Ron says bye 3 Her mi oh ne is silent 4 The above sentence is weird 我需要一个 grep 命令来检测第三行 这就是我正在
  • 在“grep”结果中包含标头

    有没有一种方法可以将 head 1 和 grep 命令组合成一个目录中的所有文件 并将输出重定向到输出文件 我可以使用 sed 来完成此操作 但它似乎不如 grep 快 sed n 1p 6330162 p infile txt gt ou
  • awk 有条件地组合多行

    我想将多行不同长度的值合并到一行 如果它们与 ID 匹配 输入示例是 ID Value a 1 49 a 2 75 b 1 120 b 2 150 b 3 211 c 1 289 d 1 301 d 2 322 所需的输出示例是 ID Va
  • 从 kubectl 输出显示失败的 pod

    我想写一个包装kubectl仅显示失败的 Pod 这意味着它应该只显示 Ready 列值不相同的项目 即0 1 0 2 1 2 2 3 etc kubectl get pods all namespaces NAMESPACE NAME R
  • grep UNIX 中的一个选项卡

    我如何grepUnix 平台上文件中的制表符 t 如果使用 GNU grep 则可以使用 Perl 风格的正则表达式 grep P t
  • 是否可以使用数组中存储的关键字执行 grep 操作?

    是否可以使用存储在数组中的关键字执行 grep 操作 这是可能的代码片段 我该如何纠正它 args key1 key2 key3 cat file name while read line echo line grep q w args c
  • 用于搜索内部文件的 ssh 命令

    几周前 我的两个网站可能被 ftp 暴力攻击所利用 破坏了我网站的许多文件 我发现他们通常会在js或php文件中插入以下代码 Trojan code removed as irrelevant to this question 我想通过 s
  • 如何在Mac终端中找到带有“top”的特定进程

    我试过了top grep skype例如 但它不起作用 我正在尝试按名称查找特定进程 使用这个代替 ps ax grep i skype
  • 使用 grep 查找两个字符之间的字符串

    我发现了这一点answer https stackoverflow com a 1454936 2068595用于查找两个字符之间的字符串的正则表达式 就我而言 我想找到之间的每一个模式 and 这是正则表达式 lt 确实 当我尝试它时它有

随机推荐

  • 列计数与第 1 行 JAVA mysql 的值计数不匹配[重复]

    这个问题在这里已经有答案了 我遇到了一个错误 java sql SQLException Column count doesn t match value count at row 1 at com mysql jdbc SQLError
  • 将引导模式滚动到底部时启用按钮

    我想强制用户阅读模式内的所有协议 这个想法很简单 如果他们不滚动到文本的最后一行 该按钮仍然禁用 但该按钮未启用 这是我的代码 JavaScript agreement scroll function if this scrollTop t
  • 暂时修复后恢复随机种子的最佳方法是什么?

    这是 取消种子 随机数生成器的唯一方法吗 np random seed int time time 如果您希望在循环中重复某些代码 例如测试 而其他代码希望每个循环都是随机的 那么在设置种子后如何将种子 重置 为随机数生成器 下面的代码说明
  • TensorFlow 和 Keras 的相同实现之间的不同行为

    我的机器上有 TensorFlow 1 9 和 Keras 2 0 8 当使用一些玩具数据训练神经网络时 TensorFlow 和 Keras 之间产生的训练曲线非常不同 我不明白为什么 对于 Keras 实现 网络学习得很好 损失持续减少
  • 类型错误 float 不可调用。我试图弄清楚为什么我的 elif 语句不可调用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions from
  • 如何使用 GORM 创建复合主键?

    我有三个领域类 Beer Review 和 Reviewer 我希望 Review 表在 Beer 和 Reviewer 之间创建多对多关系 因此我希望 Review 的主键是 Beer 和 Reviewer 的 id 字段的组合 我正在关
  • 结合 geojson 和 json 制作传单

    我有一张带有 GeoJson 图层的 Leaflet 地图 var objJson https raw githubusercontent com salucci Leaflet Teste master BrasilNovo json g
  • 如何替换已弃用的 android.support.v4.app.ActionBarDrawerToggle

    昨天 17 10 2014 我更新了 Android SDK 并support library v4 jar我的应用程序 现在我收到与以下内容相关的弃用警告ActionBarDrawerToggle 阅读文档 https developer
  • 什么时候使用vtable?

    vtable 仅用于虚拟函数查找 还是也用于普通成员函数查找 从技术上讲 这是一个实现细节 C 标准没有提及 vtable 或 vptr 但通常情况下 编译器只会在多态意义上 即通过指向基类的指针 引用 调用成员函数时才会选择使用 vtab
  • 加快 Firebase 存储下载速度

    我正在尝试从 Firebase 存储中提取视频并将其放入我的 Android 应用程序上的幻灯片中 但视频需要很长时间才能加载 有谁有任何替代方案或方法来加快数据下载速度 您可以将文件存储在区域存储中 例如 us east1 请参阅http
  • 如何仅显示一页以上的报表的第 x 页(共 y 页)

    我正在使用 jasper reports 4 5 0 我正在使用这个碧玉生成不同格式的报告 我想在我的报告中显示第 X 页 共 Y 页 所以我使用 iReport 提供的页码文本字段 该字段在调色板中可用 它显示所有报告中的页码 甚至是单页
  • 从更新站点下载 eclipse 插件的工具

    我需要在未连接到 Internet 的计算机上安装 eclipse 插件 但找不到用于本地安装的 dist 是否有一个工具可以从更新站点下载插件并创建本地安装存档 或本地更新站点 有传言说你可以用 eclipse 来做到这一点 但我找不到任
  • 如何更改 UITextField 上清除按钮的色调颜色

    我的 UITextfield 上有一个自动生成的清除按钮 具有默认的蓝色色调 我无法将色调颜色更改为白色 我尝试修改故事板和代码但没有成功 并且我不想使用自定义图像 如何在不使用自定义图像的情况下更改默认的透明按钮色调颜色 干得好 Tint
  • HTML.fromHTML - Android 中的 TagHandler

    我有一个 TextView 我想将 HTML 设置为 HTML fromHTML 但我想过滤掉所有 img 带有标签处理程序的标签 我想将所有链接 src 保存在列表数组中 那可能吗 Thanks 是的 这是可能的 您可以使用jsoup h
  • 如何确定电子邮件地址是 Microsoft“工作或学校”帐户还是 Microsoft 帐户

    我想在 Azure 多租户环境中对 Microsoft 帐户和 工作或学校 帐户进行身份验证 每种身份验证类型需要不同的请求 如果我尝试针对 工作或学校 请求以 Microsoft 帐户身份登录 则登录将在 Microsoft 登录时失败
  • 在 api 27、28、29 中混淆应用程序时,工作管理器不会运行

    我有一个每 15 分钟运行一次的定期任务 当混淆应用程序时 如果应用程序从后台被终止 工作管理器将不起作用 测试设备 一加7T 诺基亚5 Google Pixel 2模拟器 仅当应用程序位于前台或后台时 工作管理器才会执行 禁用 progu
  • 如何在混合(C#/C++)调试中设置数据断点?

    我用 C 启动程序 然后调用一些非托管 C 当我在非托管 C 中中断一行时 新数据断点 菜单项呈灰色 有没有办法解决 所以要做到这一点我必须 将非托管dll设置为启动项目 将托管程序设置为启动命令 将调试模式设置为Native 中断执行 或
  • 使用有关 WooCommerce 用户创建的生成密码发送电子邮件通知

    在 WooCommerce 中 使用下面的代码我创建新的 WP User 其中随机密码并将用户角色设置为 客户 我想在购买时自动创建帐户 然后我用WC Emails将登录详细信息发送给买家 在这种情况下 我需要纯密码 但我真的不知道为什么附
  • 如何锁定 SVN 主干(除了来自分支的合并)?

    我想阻止开发人员直接在主干上工作 我的目标是强制所有开发人员离开主干并在自己的分支上工作 直到 CI 测试通过 然后 他们必须从主干合并到分支 以获取最新更改 运行并通过测试 然后再合并回主干 这种 SVN 使用方式有什么规则吗 限制主干提
  • “grep”命令的退出状态代码

    The grep http linux die net man 1 grep手动在退出状态部分报告 EXIT STATUS The exit status is 0 if selected lines are found and 1 if