sed:替换行的一部分

2024-01-09

如何用 sed 替换一行的一部分?

线路

DBSERVERNAME     xxx

应替换为:

DBSERVERNAME     yyy

值 xxx 可能会有所不同,并且 dbservername 和该值之间有两个选项卡。该名称-值对是配置文件中的众多名称-值对之一。

我尝试使用以下反向引用:

echo "DBSERVERNAME    xxx" | sed -rne 's/\(dbservername\)[[:blank:]]+\([[:alpha:]]+\)/\1 yyy/gip'

这导致了一个错误:“s”命令的 RHS 上的引用 \1 无效。

表情有什么问题吗?使用 GNU sed。


这有效:

sed -rne 's/(dbservername)\s+\w+/\1 yyy/gip'

(当您使用 -r 选项时,不必转义括号。)

一点解释:

  • -r是扩展的正则表达式 - 改变了正则表达式的编写方式。
  • -n除非指定,否则不打印 -sed否则默认打印,
  • -e means what follows it is an expression. Let's break the expression down:
    • s///是搜索替换的命令,第一对之间是要匹配的正则表达式,第二对是替换,
    • gip,它跟随搜索替换命令;g表示全局,即,每行匹配项而不仅仅是第一个匹配项将被替换为一行;i不区分大小写;p表示完成后打印(记住-n之前的旗帜!),
    • 括号代表匹配部分,稍后会提到。所以dbservername是第一个匹配部分,
    • \s是空白,+表示一个或多个(相对于*,零个或多个)出现,
    • \w是一个单词,可以是任何字母、数字或下划线,
    • \1是 GNU 的特殊表达sed打印随附搜索中第一个括号内的匹配项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sed:替换行的一部分 的相关文章

  • 如何在 sed 命令中使用变量

    我有一个名为 text file1 txt 的文件 文件中的内容是 主题 C US O AAA OU QA OU 12345 OU TESTAPP 现在我想要实现的是如下内容 主题 C US O AAA QA 12345 TESTAPP 当
  • SED 或 AWK 将所有内容替换为另一个文件中的模式

    我正在尝试使用 SED 脚本进行模式替换 但它无法正常工作 样本内容 txt 288Y2RZDBPX1000000001dhana JP2F64EI1000000002d EU9V3IXI1000000003dfg1000000001dfd
  • 查找列中字段的平均值[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个这样的记录 1 11 11 T A 0 0 A 1 B 2 C 3 D 4 有 8 列 每列由制表符空格分隔 我需要的输出是这
  • sed:每N行后插入一个字符串

    我想在大文件中每 30 行后插入一个字符串 我使用的是 mini sed 它不支持 波形符 范围运算符 我正在寻找仅限 sed 的解决方案 该线程是如何使事情变得过于复杂的另一个例子 这应该可以做到 sed 0 30 s string g
  • 使用 bash 脚本在 Info.plist 中添加/替换 URL 方案

    我想添加 替换 URL 方案Info plist使用 bash 脚本 命令创建文件 我尝试过sed命令有各种模式但没有成功 我们希望使用 Jenkins 自动生成构建 并且我们的 URL 方案可以针对各种构建进行更改 因此我们想要修改Inf
  • “sed” 在文件中插入反斜杠

    Tool Windows 版 Git Bash Problem 尝试在目录中每个文件的顶部插入文本 connectcentral Code for f in DIR sql do sed i 1i connect central f don
  • 在 bash 脚本中获取星期几

    我想在变量中包含星期几DOW 所以我使用以下 bash 脚本 DOM date d DOW DOM 7 sed s 0 不幸的是我收到这个错误 bash 09 command not found 变量中的预期结果为 2 9 7 2 DOW
  • 使用 AWK 或 SED 以及以下标签以逗号分隔

    使用 AWK 或 SED 以及下面使用的标签以逗号分隔 BEGIN AccountID BEGIN CallerID BEGIN Billed Account Attributes 1111111 1111111 1111111 END B
  • sed 在文本文件中换行?

    我是 Sed 的新手 我有一堆 ASCII 文件 其中包含如下所示的数据 Test Version 2 6 3 Model Manufacturer HR21 100 Test Version 2 6 3 Model Manufacture
  • 我可以使用 sed 命令将多个空行替换为一个空行吗?

    我知道 SO 中也有类似的问题如何在 bash 中用单个空行替换多个空行 https stackoverflow com questions 922449 how can i replace mutliple empty lines wit
  • sed-删除不包含模式的行

    我很惊讶我在 SO 上找不到与此类似的问题 如何使用 sed 删除所有不包含特定模式的行 例如 我有这个文件 cat kitty dog giraffe panda lion tiger 我想要一个 sed 命令 当调用该命令时 它将删除所
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • sed 错误“未终止的 's' 命令”故障排除

    我正在构建一个script https stackoverflow com questions 4036832 replacing a specific term in an xml file其中 它将用文件夹路径替换 XML 文件中的模式
  • 忽略 sed 查找和替换命令中的斜杠

    我正在尝试在终端中使用 sed 进行查找和替换 在 apache 配置文件中 我尝试替换 DocumentRoot var www with DocumentRoot var www mysite com public html 从命令行
  • shell解析json并循环输出组合变量

    杰斯克喜欢我之前的话题 https stackoverflow com questions 74063588 shell parsing json contains spaces in string 我知道如何解析带有空格的简单 json
  • 如何使用 bash 中提供的工具生成一系列非周末日期?

    我想生成一个文件列表 其中名称包含 filename date 例如file 20111101 file 20120703 开始November 1 2011直到今天 应该不包括周末 Thanks 2011年试试这个 for y in 20
  • 使用 sed 将反斜杠替换为斜杠[重复]

    这个问题在这里已经有答案了 我需要更换 with 我有一个文件 其中包含 test test2 test3 test4 I tried VRS Ruta cat ruta lst sed s g sed s g output test te
  • 使用 sed 使用另一个文件的内容替换文件内的文本块

    我希望用另一个文件的内容替换标记之间的文本块 我遇到了这个解决方案 但它只适用于一行 sed n foo p a N bar ba s n REPLACEMENT n p file line 1 line 2 foo REPLACEMENT
  • 使用 sed 替换复杂模式

    我想使用 sed 命令替换模式 要删除的图案如下所示 带有一个空格 var 0xaae8 x6A x6F x69 x6E x72 x65 x76 x65 x72 x73 x65 x73 x70 x6C x69 x74 x3E x74 x70
  • 如何使用 sed 将每个换行符 (\n) 替换为空格?

    如何替换换行符 n 与一个空格 使用sed命令 我尝试失败 sed s n g file sed s g file 我如何解决它 sed旨在用于基于行的输入 虽然它可以做你需要的事情 这里更好的选择是使用tr命令如下 tr n lt inp

随机推荐

  • MIPS 上适用于 Android 的免费 Pascal

    尝试将 Delphi 库移植到 Android Free Pascal 支持 Android ARM 可以使用适用于 Windows 的预构建编译器 不过 Android NDK 现在也支持 MIPS 和 x86 FPC 人员的支持状况如何
  • Pandas 插值给出奇怪的结果

    我正在使用 Pandas 及时插值数据点 但是在重采样和插值时 使用不同的重采样率时 相同的插值时间会得到不同的结果 这是一个测试示例 import pandas as pd import datetime data pd DataFram
  • 将 15 添加到 R 中列的每个数字[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我是 R 新手 我正在尝试为特定列的数据集中的每个数字添加 15 并且想知道这是如何实现的 任何帮助将不胜感激 谢谢 假设你有一个 data
  • 如何禁用 DataGridView CheckBox 列中的特定复选框单元格

    我有一个带有 DataGridView 控件的 winForm 它包含 5 列 其中一列是 CheckBox 列 我想根据同一行另一列中存在的值启用 禁用该列的复选框单元格 我可以使用禁用整个列 但它使整个列处于禁用状态 这是 DataGr
  • 在 .js 文件中声明全局变量是不好的做法吗?

    我有一个 js 文件 我正在其中初始化两个使用的参数 在一个单独的函数中 var submyvar1 var submyvar2 function init myvar1 myvar2 submyvar1 myvar1 submyvar2
  • 这种与 splat 运算符的并行赋值在 Ruby 中是如何工作的?

    letters a b c d e first second letters first gt a second gt b c d e 我明白这会产生什么 但无法理解这一点 这基本上是 Ruby 的魔法吗 无法想到任何其他编程语言可以支持使
  • ng-cloak 和 ng-show 在屏幕上闪烁隐藏元素

    我有一个 div 元素 我只想在项目列表为空时显示该元素 所以我输入以下内容 在 haml 中 no items ng cloak ng show gt items length lt 0 ng cloak gt true 然而 即使我完成
  • .net 序列化:如何有选择地忽略数据字段

    在 Net你可以将一个字段标记为不可序列化 并且在序列化过程中它将被跳过 我正在寻找一种简单的方法 它允许我在运行时控制是否应序列化特定字段 您指的是 将字段标记为不可序列化 所以我假设您正在使用BinaryFormatter and No
  • 播放服务广告与 appcompat 冲突

    当我添加implementation com google android gms play services ads 18 2 0 到我的 build gradle Android Studio 亮点implementation com
  • 如何强制mongo以小写形式存储成员?

    我有一个 BsonDocuments 集合 例如 MongoCollection
  • 为什么绑定不适用于动画?

    我对动画绑定属性有一个简单的问题 这是一个简单的例子来说明它 视图模型 public class ViewModel private double myProperty public double MyProperty get return
  • 在 JavaScript 中检测 Lion (OS X 10.7)?

    有没有办法用 Javascript 检测操作系统是否是 OS X Lion Cheers Lion 中 Safari 还有 Firefox 的用户代理类似于 Mozilla 5 0 Macintosh Intel Mac OS X 10 7
  • 如何从 Amazon API Gateway 将查询字符串或路由参数传递到 AWS Lambda

    例如如果我们想使用 GET user name bob or GET user bob 如何将这两个示例作为参数传递给 Lambda 函数 我在文档中看到了有关设置 映射自 的内容 但我在 API Gateway 控制台中找不到该设置 me
  • Kotlin 中具有反向查找功能的有效枚举?

    我正在尝试找到在 Kotlin 中对枚举进行 反向查找 的最佳方法 我从 Effective Java 中得到的收获之一是在枚举中引入静态映射来处理反向查找 使用一个简单的枚举将其移植到 Kotlin 会得到如下所示的代码 enum cla
  • 关于 (POSIX) 信号主题的最佳参考文献是什么?

    信号似乎是概念上应该简单且易于解释的领域之一 但我从未遇到过既全面 清晰又最新的来源 在某种程度上 这似乎是由于历史遗留问题 规则的大量例外 不同的编程标准 混乱的线程 实时添加等 关于 unix linux posix 信号 您写得最好
  • 如何在 Asp.net MVC2 中通过 Ajax 调用处理 UnauthorizedRequest

    Brief 我的框架中有一个子类 AuthorizeAttribute 我在其中进行自定义授权 我正在从普通的 asp net mvc 视图渲染切换到通过 jQuery 的 Ajax 渲染 因此 应用程序中的每个链接都会执行 ajax 调用
  • Firefox 中的内联 SVG

    我对这个有点难住了 我使用 Protovis 一个 JS 库 渲染 SVG 可视化 它在 Chrome 和 Firefox 中运行得非常好 我将渲染的 SVG 保存在我的服务器上 并尝试使用 PHP 函数在 图库 视图中重新渲染它 但这在
  • Python Gtk 3.0:如何在 Notebook 中获取焦点

    我正在尝试将焦点设置为Entry输入字段 如果我把它放在一个Box 我可以通过设置焦点grab focus方法 但如果Entry是在一个里面Notebook 它没有聚焦 示例代码 import gi gi require version G
  • querySelectorAll 无法识别 var

    我正在使用 casperjs 进行一些网络抓取 但遇到了一个奇怪的问题 我希望能够从字符串构造 CSS 路径并使用 querySelectorAll 获取数组 如下所示 var tier ou var index div list gt d
  • sed:替换行的一部分

    如何用 sed 替换一行的一部分 线路 DBSERVERNAME xxx 应替换为 DBSERVERNAME yyy 值 xxx 可能会有所不同 并且 dbservername 和该值之间有两个选项卡 该名称 值对是配置文件中的众多名称 值