从 xargs 运行时,如何避免 sed 出现“无输入文件”错误?

2024-03-24

我有这个 shell 脚本来更新我的配置文件中的 IP 地址(任何匹配的$old_address_pattern必须改为$new_address):

grep -rl "$old_address_pattern" /etc \
  | xargs sed -i "s/$old_address_pattern/$new_address/g"

If the grep命令找不到匹配的文件,然后sed会抱怨“没有输入文件”。当文件列表为空时,如何使该管道成功?


如果你想避免跑步sed when grep不产生任何输出,那么(因为你已经用 Ubuntu 标记了它),你可以给出-r or --no-run-if-empty论证xargs:

--如果为空则不运行
-r
如果标准输入不包含任何非空白,则不要运行该命令。通常,即使没有输入,该命令也会运行一次。该选项是 GNU 扩展。

所以你的命令应该是这样的:

grep -rlZ "$old" /etc | xargs -0 -r sed -i "s/$old/$new/g"

(我添加了grep -Z and xargs -0标志,因为您的平台支持这些标志,并且它们使命令对恶意文件名更加稳健)


对于没有的平台xargs -r,那么通常的解决方案是通过/dev/null作为第一个文件名参数:

grep -rl "$old" /etc | xargs sed -i "s/$old/$new/g" /dev/null

在这种情况下,当没有匹配项时,sed将在空设备上无害地运行。

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

从 xargs 运行时,如何避免 sed 出现“无输入文件”错误? 的相关文章

随机推荐

  • 编译为 C 时的垃圾收集

    将垃圾收集语言编译为C时 垃圾收集的技术有哪些 我知道有两个 维护一个影子堆栈 将所有根显式保存在数据结构中 使用像 Boehm 这样的保守垃圾收集器 第一种技术很慢 因为您必须维护影子堆栈 可能每次调用函数时 您都需要将局部变量保存在数据
  • 如何使用 jQuery 获取 id 元素的一部分?

    如何从 id old id 的 span 中获取 一些文本 并将其放入 id new id 中 span Some text span span span span Some text span span span 我不知道如何获得数字部分
  • 4 层(对于 N 层)架构示例?

    最近 我的一个朋友向我询问 N 层架构 我能够通过示例向他解释 1 2 和 3 层架构 但当我想给出超过 3 层的例子时 我就陷入了困境 我用谷歌搜索并大量寻求帮助 但找不到任何像样的例子 事实上 它被命名为 N 层 这让我认为 N 可以是
  • 使用升压间隔_map

    试图遵循boost party我制作了这个示例代码 include boost icl interval hpp include boost icl interval map hpp include
  • 为什么Python中列表元素查找的复杂度是O(1)?

    今天在课堂上 我们了解到从列表中检索元素是O 1 在Python中 为什么会这样呢 假设我有一个包含四个项目的列表 例如 li perry 1 23 5 s 这些项目在内存中具有不同的大小 所以不可能获取内存位置li 0 并添加每个元素大小
  • 相似列出现的次数

    我是 SQL SERVER 新手 需要您的建议 我有一张大桌子 上面有商店信息 这是 bench id 列 bench id 31 51 51 61 61 61 71 71 我创建了另一个包含两列的小表 distinct bench num
  • BatchGetItem 或 Query DynamoDb - 按范围查询

    我有一个名为 User 的表 它有一个用户 ID 的哈希键和一个组织 ID 的范围键 如何返回组织 ID 为 3 的所有用户 顺便说一句 这是一个 Lambda 函数 这段代码给了我一个错误 console log Loading even
  • YUY2 与 YUV 422

    我无法理解两者之间的确切区别 从研究来看 更多地讨论两者是不同的 但少数人似乎将它们分组在 4 2 2 抽样方案下 YUV 422 I 和 J 版本 有一个亮度平面 Y 和 2 个色度平面 U V 然而 在 I422 中 色度平面 蓝色和红
  • 如何在 React.js 中解析 FOUC

    我已经从 create react app 构建了react js 网站 但在生产模式下 存在 FOUC 因为样式是在 html 渲染后加载的 有什么办法可以解决这个问题吗 我一直在谷歌搜索答案 但还没有找到合适的答案 FOUC FOUC
  • 如何在WPF中绘制平滑的曲线?

    我有三个已知位置 目前我正在驾驶两条线路 如下所示 Line line new Line StrokeThickness 3 Stroke lineColor X1 MyX Y1 MyY X2 MyX Y2 MiddleY Graph Ch
  • Canvas 绘制在 Safari 上需要花费大量时间,但在 Chrome 或 FF 上则不需要

    我正在我的网站上制作万花筒 它所做的只是获取一张图像 通过拖放或加载时的默认图像 并将其复制 10 次 万花筒的每个切片复制一次 鼠标移动时 调整切片的旋转和缩放以达到所需的效果 在 Google Chrome 和 Firefox 上 它可
  • Azure 上的 ASP.NET MVC 5:对于 SVG 文件,“您正在查找的资源已被删除...”

    我创建了一个包含一些视图和控制器的 MVC 5 网页 添加了一些图像 gif 和 svg 并验证它主要在本地工作 图像显示出来 一切都按预期进行 当我部署到 Azure 时 gif 图像加载正常 但 svg 图像给出错误The resour
  • Javascript 如果对象中存在值?

    我有一个对象 var car company Honda year 2011 Model Brio 我想知道是否存在继承方法 这是正确的短语吗 来检查给定对象中是否存在值 有点像x hasOwnProperty or if x in car
  • 为什么 JavaScript 的这两部分不等价?

    在 jquery 1 4 2 ff 3 6 6 中 以下代码生成三个 div 它们按照您的预期将消息写入 Firebug 控制台 但是 如果您取消注释循环并注释掉手动执行的 3 行 则它将不起作用 将鼠标悬停在任何 div 上都会导致 th
  • 在VIM中插入到行尾

    So for a long time I ve had a bad habit of going to the end of a line hitting the i key and then hitting the right arrow
  • includeAll path="" 在 3.5.3 中不起作用,使用 java -jar 方法

    我们遇到一个主要问题 即相对路径在databaseChangeLogMaster xml使用 includeAll 时的文件 includeAll 仅适用于绝对路径 示例如下 下面不起作用
  • 允许搜索机器人在没有会话 ID 的情况下抓取您的网站

    谷歌的 state 允许搜索机器人在没有会话 ID 或跟踪其网站路径的参数的情况下抓取您的网站 这些技术对于跟踪个人用户行为很有用 但机器人的访问模式完全不同 使用这些技术可能会导致网站索引不完整 因为机器人可能无法消除看起来不同但实际上指
  • 计算给定字符集的所有组合,以进行强力匹配?

    在实践多线程时 我希望简单地构建一个应用程序 可以计算字符集的所有可能组合 即强力破解 匹配 并在线程之间分配工作 以真正测量并直接了解线程如何影响算法在不同系统上的时间 到目前为止 计算这个的算法对我来说是一个巨大的挑战 在最近的一个线程
  • 架构配置无效:“model”不是数组“characters”中的有效类型

    我正在尝试创建架构子文档 但收到上面列出的错误 有问题的模式看起来像这样架构导致问题 const mongoose require mongoose const Schema mongoose Schema const CharacterS
  • 从 xargs 运行时,如何避免 sed 出现“无输入文件”错误?

    我有这个 shell 脚本来更新我的配置文件中的 IP 地址 任何匹配的 old address pattern必须改为 new address grep rl old address pattern etc xargs sed i s o