将单词添加到一行的最后一个单词之前

2023-12-04

我想在一行的最后一个单词前面添加一个目录名称。该行具有以下格式:

100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0^IoneFile$

where ^I表示一个tab, and $表示行尾。该行是由生成的git ls-files -s.

我想要一个sed前置命令one/到这一行的文件名,如下所示:

`100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0^Ione/oneFile$

我尝试过的一些行及其相应的输出:

  1. 匹配最长的不存在的字符串\t其次是$;附加one/:

    $ git ls-files -s | sed 's|[^\t]*$|one/&|'  
    one/100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0   oneFile
    
  2. 匹配最长的不存在的字符串\t or ' '其次是$;前置one/:

    $ git ls-files -s | sed 's|[^\t ]*$|one/&|'
    100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e one/0   oneFile
    
  3. 匹配非水平空白的最长字符串,前置“one/”:

    $ git ls-files -s | sed 's|[^[[:blank:]]]*$|one/&|'
    100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0   oneFilone/e
    

我基本上尝试了一大堆匹配的东西:

  • [^\t ]*$|one/&
  • [^[[:space:]]]*$|one/&

以及上面列出的那些。我能得到的最接近的是oneFilone/e,这是[^[[:blank:]]]*$|one/&|',或预先挂起0,但我似乎无法完全得到我想要的。

编辑 因为有几个人评论/发布了答案,但这些答案都不适合我,我想我应该补充一下:我正在使用 Mac OS X 10.7.3。的版本sed我不完全确定(如果有人知道如何获得它,请随意添加评论)-man sed页面说它是 BSD sed。我不确定这有什么不同GNU sed,如果有的话。

我也在用zsh, with oh-my-zsh正在运行(几乎没有修改)。我已开启extended_glob (setopt extended_glob).

我已经用我的结果对人们给出的答案进行了评论;我假设它们在 Linux 发行版上运行?今晚我无法访问非 OS X 系统,但明天我将重新运行所有答案;也许这只是我的[shell|OS|bad karma]这不让他们为我工作。

再次编辑:

所以我在Ubuntu系统上进行了测试,上面的(1)确实有效。不过,我想要一个适用于我的 Mac 的工作版本。

最终编辑: 感谢所有使用等效命令回答的人。原来我的第一个does工作,但不与BSD sed。然而我确实有gsed可用(感谢您指出这一点!)这使得这些都神奇地发挥作用。


这更简单,但似乎有效:

echo -e '100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0 oneFile' | sed -e 's/\([a-zA-Z]\+\)$/one\/\0/g'
100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0 one/oneFile

它也应该与一个文件之前的选项卡一起使用。

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

将单词添加到一行的最后一个单词之前 的相关文章

随机推荐

  • 如何使用斯坦福解析器解析英语以外的语言?在java中,而不是命令行

    我一直在尝试在我的Java程序中使用Stanford Parser来解析一些中文句子 由于我对 Java 和斯坦福解析器都很陌生 因此我使用 ParseDemo java 进行练习 该代码可以很好地处理英语句子并输出正确的结果 然而 当我将
  • 从邮件的 FROM 字段中的 Exchange 用户中提取 SMTP 地址

    我想按域 可能还有用户 组织文件夹中的邮件 我有一个脚本 但它无法从 Exchange 用户获取 SMTP 地址 下面的代码是地址提取器的摘录 For each obj in objFolder Items If obj SenderEma
  • 读取文件时查找文件结尾

    void graph fillTable ifstream fin char X int slot 0 fin open data txt while fin good fin gt gt Gtable slot Name fin gt g
  • 检查两个列表是否共享至少一个元素[重复]

    这个问题在这里已经有答案了 我有两个列表 例如 a mail1 mail2 mail3 mail4 b mail2 mail5 我想检查列表中是否有任何元素b也出现在列表中a 我想知道是否有一种方法 以及它是什么 可以在不使用 for 循环
  • F# 错误“错误 FS0039:命名空间或模块“MySql”未定义”?

    你好 我尝试连接 F 和 MySQL 数据库 但出现以下错误 错误 FS0039 命名空间或模块 MySql 未定义 到目前为止 我尝试引用包含 MySQL Data dll 的文件夹 项目 gt 添加引用 gt 浏览 gt C Progr
  • LDAP 搜索中的 CN、OU、DC 是什么?

    我在 LDAP 中有一个这样的搜索查询 这个查询到底是什么意思 CN Dev India OU Distribution Groups DC gp DC gl DC google DC com CN 通用名称 OU 组织单位 DC 域组件
  • 将 NSString 转换为 NSDate - 格式错误

    您好 我正在尝试将字符串转换为 NSDate 格式 但它返回格式错误的值 并且返回的值也是 GMT 时间 NSString myString 10 30 AM NSDateFormatter dateFormatter NSDateForm
  • 取消Javascript超时

    我在 Web 服务器上托管了一个很长的进程 该事件是通过用户单击按钮从网页触发的 一些 Javascript 通过 Ajax 定期轮询 以检查服务器端操作是否已完成 为此 我使用setInterval 以及稍后clearInterval停止
  • Chrome中如何通过iframe订阅pushManager?

    我可以通过 iframe 注册 Service Worker 当我尝试运行 pushManager subscribe 时 我有 DOMException Registration failed permission denied 此问题仅
  • stdin stdout python:如何重复使用同一输入文件两次?

    我对 Python 很陌生 甚至对 stdin stdout 方法也很陌生 尽管如此 我需要使我的脚本可用于 UNIX 命令 以便可以使用我的脚本一次处理 2 个输入文件 该脚本与命令行参数完美配合 newlist def f1 def f
  • 避免在 ASP.NET MVC 中使用会话状态是一个好习惯吗?如果是,为什么以及如何?

    它没有明确地写在某处 但在阅读了一些关于 ASP NET MVC 的博客后我有这样的感觉 只是好奇 就想在这里问一下 UPDATE 我不是在询问服务器上的内存 存储 RAM 问题 对于他们来说 有一个解决方案可以将会话存储在进程外 我知道
  • WPF MDI 应用程序中的组合根在哪里?

    在传统的 MDI 应用程序中 当命令发生时 例如按下功能区按钮 将创建一些对象 表单 因此它可能是一个组合点 我对此类应用程序中的组合根感到困惑 我在某处读到我们可以使用视图模型定位器看起来像服务定位器图案 如您所知 服务定位器模式受到了一
  • 用户定义的异常是受控异常或非受控异常

    在我的 Web 应用程序中创建了一个用户定义的异常 它扩展为 Exception 它是已检查还是未检查的异常 public class InvalidDataException extends Exception public Invali
  • 我想在 UIAlertView 上显示 UIProgressView

    我想在 UIAlertView 上显示 UIProgressView 以显示文件上传的处理情况 但我搜索了太多 也找到了该链接 但仍然无法做到这一点 我不明白这个 如果有人知道最简单的方法 请告诉我 我在执行此操作时遇到了问题 最终得到了以
  • CSS3 微调器、预加载器

    我想用 CSS3 构建一个动画旋转器 它的行为应该像这样 在最后一个状态之后 它应该像第一个状态一样重新开始 我设法使用此处解释的技术创建圆圈 堆栈溢出问题 现在 怎样才能我在所描述的状态之间设置旋转器的动画 我不知道如何为剪辑矩形属性设置
  • IllegalArgumentException:从视图加载位图时宽度和高度必须 > 0

    我正在尝试使用 ImageViewTouch 这是一个支持捏缩放的库 我可以使用 Canvas 在图像上绘图 但是当我缩放图像时 绘图会消失 为此 我尝试将视图转换为位图并为同一视图设置 theImageBitmap 这是代码 mImage
  • Chrome 自动填充会导致文本字段标签和值的文本框发生冲突

    在 React 中 自动完成 Chrome 值不会立即触发 onChange 事件 因此 在页面初始加载期间 它会导致 MUI TextField Label 和实际值发生冲突 我该如何解决这个问题 尝试了多种方法 InputLabelPr
  • 在元素中创建响应式对角线

    不确定这是否可行 但是如何创建一条从元素左上角到右下角的 1px 对角线 无论该元素的宽度和 或高度如何 您可以通过多种方式做到这一点 1 背景图片 1 1 SVG 您可以直接创建 svg 作为内联代码并使用它来绘制线条 使用它你可以实现漂
  • .NET 反射 - 从实例属性获取声明类类型

    是否可以从属性实例获取类的类型 我尝试了以下方法 var model new MyModel SomeValueForMyProperty Type declaringType model MyProperty GetType Declar
  • 将单词添加到一行的最后一个单词之前

    我想在一行的最后一个单词前面添加一个目录名称 该行具有以下格式 100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0 IoneFile where I表示一个tab and 表示行尾 该行是由生