Sed - 替换每行最后出现的匹配项

2024-01-01

所以我有以下文件:

Carlton 3053
Carlton North 3054
Docklands 3008
East Melbourne 3002
Flemington 3031
Kensington 3031
Melbourne 3000
Melbourne 3004
North Melbourne 3051
St Kilda East 3183

我想用连字符替换数字前面的最后一个空格,这是我最接近的

cat file.txt | sed -r 's/\ /\-/g'

但这会将所有空格替换为 - 我希望输出看起来像这样:

Carlton-3053
Carlton North-3054
Docklands-3008
East Melbourne-3002
Flemington-3031
Kensington-3031
Melbourne-3000
Melbourne-3004
North Melbourne-3051
St Kilda East-3183

有任何想法吗?


那这个呢?

$ sed -r 's/ ([^ ]*)$/-\1/' file
Carlton-3053
Carlton North-3054
Docklands-3008
East Melbourne-3002
Flemington-3031
Kensington-3031
Melbourne-3000
Melbourne-3004
North Melbourne-3051
St Kilda East-3183
  • ([^ ]*)$捕获空格+“直到行尾不是空格的任何内容”。
  • -\1打印连字符+捕获的“行尾之前不是空格的任何内容”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sed - 替换每行最后出现的匹配项 的相关文章

  • Python re无限执行

    我正在尝试执行这段代码 import re pattern r w w s re compiled re compile pattern results re compiled search COPRO HORIZON 2000 HOR p
  • REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除逗号

    我在 oracle 论坛网站找到了一个例子 输入字符串 a b c x y z a xx yy zz x WITH t AS SELECT a b c x y z a xx yy zz x col1 FROM dual SELECT t c
  • 为正则表达式编写解析器

    即使经过多年的编程 我很羞愧地说我从未真正完全掌握正则表达式 一般来说 当问题需要正则表达式时 我通常可以 在一堆引用语法之后 想出一个合适的正则表达式 但我发现自己越来越频繁地使用这种技术 所以 自学并理解正则表达式properly 我决
  • 使用 posix shell 测试字符串中的正则表达式

    如何测试字符串是否与特定字符串匹配正则表达式与基本 无 bash 或任何其他 posix shell 脚本 在 if 语句中 您可以使用expr在 POSIX shell 中计算正则表达式的命令 s Abc expr s alpha 3 e
  • 在 Javascript 中获取第一个数字出现后的子字符串

    我正在尝试提取第一个数字之后 并包括 的字符 ABC 123SD gt 123SD 123 gt 123 123SD gt 123SD ABC gt 我当前的解决方案如下 var string1 ABC 123SD var firstDig
  • grep 两个分隔符之间的子字符串

    我有很多bash使用的脚本perl内的表达式grep为了提取两个分隔符之间的子字符串 例子 echo BeginMiddleEnd grep oP lt Begin End 问题是 当我将这些脚本移植到运行的平台时busybox 融合的 g
  • 正则表达式最多匹配五个单词

    我有一个正则表达式 a zA Z 0 9 1 5 它验证该单词包含字母数字字符和少数特殊字符 并且长度不应超过5人物 如何使此正则表达式接受最多五个与上述正则表达式匹配的单词 a zA Z 0 9 1 5 s a zA Z 0 9 1 5
  • Word通配符搜索的正则表达式查找包含至少3个连续数字的括号

    在以下示例中 airspeed AS user 104A 104B device 101 vehicles 105A C 搜索应该找到 104A 104B 101 and 105A C 但不是 AS 我尝试使用 0 9 0 9 0 9 但这
  • Golang 正则表达式在字符串之间替换

    我有一些可能采用以下形式的字符串 MYSTRING MYSTRING n MYSTRING n MYSTRING randomstringwithvariablelength n 我希望能够将其正则表达式为MYSTRING foo 基本上替
  • 正则表达式的 o 修饰符是什么意思?

    Ruby 正则表达式有一些选项 例如i x m o i例如 意味着忽略大小写 什么是o选项是什么意思 在ri Regexp 它说o意味着执行 仅插值一次 但是当我这样做时 a one b a a two b不改变 它保持 one 我缺少什么
  • Python 中的 grep 等价物是什么?

    假设我有一个文本文件 其中包含 我喜欢大象 这一行 如果我捕获所述文件并将其通过管道发送到 grep大象 我会得到整行 我喜欢大象 如何使用 re 在 Python 中实现此功能 我一直在尝试以下方法 test re search elep
  • sed 错误“未终止的 's' 命令”故障排除

    我正在构建一个script https stackoverflow com questions 4036832 replacing a specific term in an xml file其中 它将用文件夹路径替换 XML 文件中的模式
  • 匹配所有有效格式 IPv6 地址的正则表达式

    乍一看 我承认这个问题看起来像是这个问题以及与之相关的任何其他问题的重复 匹配有效 IPv6 地址的正则表达式 https stackoverflow com questions 53497 regular expression that
  • 如何为 Imagus 悬停缩放扩展开发自定义过滤器?

    当我读到关于悬停缩放是邪恶的 http www reddit com r YouShouldKnow comments 1wjrc8 ysk that the hover zoom extension is spyware 哎呀 有两篇文章
  • 如何编写 Clojure 宏来从字符串创建正则表达式?

    我正在创建一个方便的宏 部分便利在于可以仅使用字符串来指定正则表达式 而不是使用 re 表示法 我无法弄清楚的一部分是如何让宏获取字符串并将其重写为 Clojure 正则表达式 例如 生成 re 符号 我认为这是一个语法 转义问题 我的第一
  • Perl:正则表达式不抓取代码中的多行 C 风格注释

    我有一个 Perl 程序 读取用 C 编写的 SRC 文件 使用 SRC 文件中的正则表达式匹配来查找特定格式的数据以用作目标文件名 打开新的目标文件 执行另一个正则表达式匹配以查找包含关键字 abcd 的所有 C 风格注释 注意 这些注释
  • [A-z0-9]+ 正则表达式匹配方括号[重复]

    这个问题在这里已经有答案了 我正在努力解决以下正则表达式 A z0 9 如果针对此字符串进行测试 a919238 a asd 它返回a919238 包括方括号 我尝试输入我在 regex101 上的测试用例 https www regex1
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • 使用正则表达式查找并替换(批处理.BAT)

    我想在多个文本文件中进行查找 替换 如何使用 BAT 实现自动化 我还需要正则表达式 示例 查找

随机推荐

  • Swing:GlassPane 防止鼠标指针改变

    我有一个 JTabbedPane 其中有一些选项卡以及选项卡旁边有很多未使用的额外空间 所以我尝试使用它并在那里放置一些按钮 就像在 Eclipse 中一样 我将按钮放在 GlassPane 上 JPanel glasspane getPa
  • Keras 中的自定义损失函数应该为批次返回单个损失值,还是为训练批次中的每个样本返回一系列损失?

    我正在学习tensorflow 2 3 中的keras API 在这个guide https www tensorflow org guide keras train and evaluate custom losses在tensorflo
  • 在 R 中使用 apply 和 allocate

    考虑以下示例 Vars lt c car bike lorry Dat lt c 10 20 22 for i in 1 length Vars assign Vars i Dat i 在这里 我想在工作区中生成三个变量 根据中的条目命名V
  • 如何使用正则表达式忽略空格?

    这是我的正则表达式 SK 1 0 9 8 但我想要这样的文字 SK 283 92758 SK 283 92 7 58 可以这样理解 SK28392758 有可能的 使用 可选 量词 每个字符之间有一个空格 S K d 7 d 这允许字符之间
  • Visual Studio 代码格式化程序

    我使用 Visual Studio 2008 来处理 C 和 JavaScript AJAXy 的东西 这是我的问题 我喜欢 Eclipse 尤其是格式化的代码 Ctrl Shift F 相比之下 Visual Studio 的 Ctrl
  • 有人能为我解释一下这个递归吗?

    我从 leetcode 得到了这个代码 class Solution object def myPow self x n if n 0 return 1 if n 1 return 1 x return self myPow x x n 2
  • 将 #define 常量转换为字符串

    我定义了一个常量 define MAX STR LEN 100 我正在尝试这样做 scanf MAX STR LEN s p buf 但这当然行不通 可以使用什么预处理器技巧将 MAX STR LEN 数字转换为字符串 以便我可以在上面的
  • 如何在activemq中杀死消费者

    我试图摆脱某个队列中的所有 消费者数量 每当我清除 删除队列时 如果我再次创建同名的队列 消费者的数量仍然保留 即使有 0 条待处理消息 仍然有 6 个消费者 我的问题可能源于我的 java 代码 但没有关闭会话或连接 我已经尝试过重新启动
  • iOS 上的 .NET MAUI 中的 Entity Framework Core 需要哪些修剪/链接器设置?

    我正在将使用 Entity Framework Core 3 1 和 SQLite 数据库的 Xamarin Forms 5 0 应用程序迁移到 NET MAUI 6 0 和 Entity Framework Core 6 0 调试构建工作
  • 如何生成密码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何生成密码 随机字符 密码短语 高ASCII码 像这样的东西吗 cat dev urandom strings Mac OS X 的
  • 扫描仪永远不会关闭

    我正在开发一款游戏 但我的扫描仪遇到了一些小问题 我得到了一个从未关闭的资源泄漏扫描仪 但我以为我的扫描仪之前可以工作而没有关闭它 但现在不是了 有人可以帮我吗 import java util Scanner public class M
  • Alembicbulk_insert 到带有模式的表

    我正在看这个例子批量插入 https alembic readthedocs org en rel 0 1 ops html alembic op bulk insert Create an ad hoc table to use for
  • 使用 psycopg2 连接到 Google Cloud SQL Postgres 实例

    我正在尝试使用 psycopg2 连接到 Google Cloud SQL Postgres 我创建了一个 postgreSQL 实例并使用默认数据库postgres目前 我可以从 pgadmin 工具以及 gcloud shell 进行连
  • PHP HTML 到 PDF 按比例转换 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在使用 PHP MySQL 和
  • 使用 CodeIgniter 通过 Google 帐户发送电子邮件

    我正在尝试使用 CodeIgniter 发送电子邮件smtp googlemail com 代码没有问题 但 Google 阻止我发送该电子邮件 这是我在 Google 帐户上收到的电子邮件 第三方最近尝试使用应用程序连接到您的 谷歌帐户
  • 使用管道屏障代替信号量

    我想确保我正确理解管道障碍 因此 只要第二个屏障的源阶段晚于第一个屏障的目标阶段 屏障就能够同步两个命令缓冲区 它是否正确 当然 如果命令缓冲区在管道的不同迭代期间执行 我将需要使用信号量 在我看来 同步是 Vulkan 中最难掌握的部分
  • ./configure --enable-shared 在 python altinstall 期间到底做了什么?

    当我使用 altinstall python 2 7 12 时 configure prefix opt python enable shared 它显示为 python 2 7 5 系统默认 python 但没有 启用共享 它显示为 2
  • 使用 data.table 查找重叠间隔组

    我有多个间隔 需要找到哪些间隔可以形成一个连续的组 在此 MWE 中 我有 Interval id Interval start 和 Interval end 我想计算 Wanted column DT lt data table Inte
  • Android:以编程方式创建滑动手势事件

    我一直试图在谷歌上找到这个特定案例的答案 但令人惊讶的是在任何地方都找不到它 只有关于检测的答案 而不是关于创建 滑动的答案 我想在屏幕上实际 运行 从右到左的模拟滑动 无论在哪里 但最好是从右边缘到左 我尝试了类似的方法 但我得到了 NP
  • Sed - 替换每行最后出现的匹配项

    所以我有以下文件 Carlton 3053 Carlton North 3054 Docklands 3008 East Melbourne 3002 Flemington 3031 Kensington 3031 Melbourne 30