Sed:为什么 [^\]] 似乎不起作用?

2024-03-28

我试图匹配/输出第一个之前的所有文本]出现:

sed -i -r 's/^([^\]]*).*/\1/' "$FILE.tmp"

令人惊讶的是,这不起作用。

但是,搜索另一个括号确实有效:

sed -i -r 's/^([^\[]*).*/\1/' "$FILE.tmp"

这是 sed bug 还是我做错了?

我知道我可以使用以下方法解决这个问题.*?这已经足够好了,但是这个问题让我困惑了很长时间,我想知道是否有我错过的东西。

(根据 --version,我使用的是 GNU sed 4.2.2。)


您不需要引用右括号]。事实上你的正则表达式被解析为[^\]跟着一个流浪者].

您想要使用以下正则表达式(请注意缺少引号\):

sed -i -r 's/^([^]].*).*/\1/' "$FILE.tmp"

第二个正则表达式偶然起作用,因为[在a中没有特殊含义[]表达式,但你会发现它也匹配以 a 开头的行\.

事实上,当使用] in a []组,它必须是第一个字符,或者如果第一个字符是第二个字符^.

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

Sed:为什么 [^\]] 似乎不起作用? 的相关文章

随机推荐

  • html输入范围拇指平滑移动

    我设置了一个 HTML 输入范围 对外观进行了一系列 CSS 更改 我想知道是否有任何方法可以使其从所在位置平滑地更改为用户更改的位置 input type range webkit appearance none width 100 he
  • 为什么通用列表的声明存在差异?

    我想声明两个列表 首先是一个整数列表 我将其声明为 List
  • Magento - 在控制器和块之间传递数据

    非常快速和简单的问题 但我找不到一个合适的答案 将数据从控制器传递到 Magento 中的块的最佳方法是什么 如果它有所不同 我将按如下方式加载布局 this gt loadLayout array default myModule def
  • 针对 JavaScript 中的多个正则表达式测试字符串

    我想针对 20 个左右的正则表达式测试给定的字符串 在 Javascript 中执行此操作的干净方法是什么 我更关心干净的代码和可读性而不是效率 但我也不希望它变得超级慢 现在我有 if href indexOf apple com gt
  • 如何更改四开中代码块的字体大小?

    我在用quarto准备 Beamer 演示文稿 我想减小给定块内代码的字体大小 以便一切都更合适 请参阅下面的示例 生成块的代码是 python Import packages import numpy as np python echo
  • 使滚动条出现在滚动条轨道悬停时

    我通过 CSS 使用自定义滚动条样式在 webkit 中实现自定义滚动条 如果其他浏览器已实现带前缀或不带前缀的版本 版本 请告诉我 但是 关于我的问题 有没有办法让滚动条出现在滚动条轨道的悬停上 有点像 Mac OS X Lion 和 M
  • ASP.Net MVC 将特定路由重定向到外部站点

    我有一个功能良好的 ASP Net MVC 站点 使用简单的标准路由方案 routes MapRoute Default controller action id new controller Home action Index id 我的
  • 有效的java构建器习语在c++中等效吗?

    这是自从阅读 Effective Java 以来我一直在使用的一个很棒的习惯用法 我一直在尝试寻找 C 的等价物或类似的东西 但运气不佳 GoF 书中找到的传统构建器模式并不真正适用于我的情况 这是一个复杂的对象 具有非常混乱的构造函数 下
  • 如果构造函数抛出异常,是否会调用析构函数?

    寻找 C 和 C 的答案 在 C 中 将 析构函数 替换为 终结器 它适用于 C 请参见下面的代码 但不适用于 C using System class Test Test throw new Exception Test Console
  • 供需模型

    我想我应该请求 SO 社区帮助我完成我目前正在进行的一个项目 我需要在市场情况下对小部件的价格进行建模 小部件的价格应该是当前供求关系的结果 用户将能够以固定价格购买和出售该小部件 当用户购买该小部件时 需求将随着价格上升 相反 当用户出售
  • 在 Android 中从数组列表中检索元素?

    我正在尝试在 Android 中实现语音识别代码 如何从 Android 数组列表中获取特定位置的元素 我尝试转换arraylist to array并检索 代码仍然无法正常工作 package com espeaker public cl
  • 为什么通过ADL发现好友功能成功

    考虑以下代码 include
  • Android动态壁纸如何实现双击?

    我想为 Android 动态壁纸实现双击事件 遗憾的是 我找不到任何具体的代码来实现这一点 目前 我找到了使用 Engine 类的 onTouchEvent 方法的解决方法 public void onTouchEvent MotionEv
  • 如何使用捆绑包在 Android 活动之间传递图像(位图)?

    假设我有一个活动从图库中选择图像 并将其作为位图检索 就像示例一样 here https stackoverflow com questions 2227209 how to get the images from device in an
  • 如何搭建本地服务器进行开发?

    我有一台运行 Windows 7 的计算机 我在这台计算机上进行大部分开发 我有一台运行 Ubuntu 的备用笔记本电脑 它们都连接到同一个 wifi 我正在 Rails 中进行开发 有没有一种方法可以使用我的备用笔记本电脑 Ubuntu
  • 在 Pandas 中显示列名与字典键名不同?

    我是 Pandas 新手 发现有很多方法可以更改列标题 例如 set axis命令的工作原理如下 gt gt gt import pandas as pd gt gt gt import numpy as np gt gt gt df pd
  • Android MediaCodec 格式/分辨率中途更改

    我正在通过以下方式处理直播MediaCodec并有一个场景MediaFormat中流发生变化 即 正在解码的视频的分辨率发生变化 鉴于我将解码器附加到Surface为了在检测到传入流的分辨率变化后立即渲染它 我在向其提供新的分辨率缓冲区之前
  • 在 setup.py build 中包含项目根目录中的 python 文件

    我试图在运行时创建的 build lib 目录中包含一个 python 文件 python setup py install 特别是 我想包含一个简单的配置文件 definitions py 它定义了一个 ROOT DIR 变量 然后由子包
  • 动态更新通知的操作图标

    我为玩家设置了通知 我想在播放或暂停通知操作后更新图标 这是我的通知代码 private void showNotification String title Bitmap bitmap region Create Notification
  • Sed:为什么 [^\]] 似乎不起作用?

    我试图匹配 输出第一个之前的所有文本 出现 sed i r s 1 FILE tmp 令人惊讶的是 这不起作用 但是 搜索另一个括号确实有效 sed i r s 1 FILE tmp 这是 sed bug 还是我做错了 我知道我可以使用以下