首页 > 解决方案 > 使用 sed 预先添加、复制/粘贴和追加?

问题描述

我有一个充满 ID 的文件,我需要使用它来构建一个 URL 列表作为 bash 文件的一部分。

ids.txt如下:

    s_Foo
    p_Bar
    s1_Blah
    e_Yah

URL 将始终以包含 ID 的文件名结尾,位于其自己的路径中。

我已经四处寻找如何使用 前置和附加sed,但无法弄清楚使用该工具进行复制/粘贴部分(\1)。ID 可以是任何东西,所以模式匹配似乎很难。在换行之前重复所有内容似乎更明智?我不知道。

如何urls.txt使用sedor来创建类似的东西awk?可能吗?

    https://link.domain.com/list/s_Foo/s_Foo_meta.xml
    https://link.domain.com/list/p_Bar/p_Bar_meta.xml
    https://link.domain.com/list/s1_Blah/s1_Blah_meta.xml
    https://link.domain.com/list/e_Yah/e_Yah_meta.xml

标签: bashsed

解决方案


$ sed 's#.*#https://link.domain.com/list/&/&_meta.xml#' ids.txt
https://link.domain.com/list/s_Foo/s_Foo_meta.xml
https://link.domain.com/list/p_Bar/p_Bar_meta.xml
https://link.domain.com/list/s1_Blah/s1_Blah_meta.xml
https://link.domain.com/list/e_Yah/e_Yah_meta.xml

$ awk '{sub(/.*/,"https://link.domain.com/list/&/&_meta.xml")}1' ids.txt
https://link.domain.com/list/s_Foo/s_Foo_meta.xml
https://link.domain.com/list/p_Bar/p_Bar_meta.xml
https://link.domain.com/list/s1_Blah/s1_Blah_meta.xml
https://link.domain.com/list/e_Yah/e_Yah_meta.xml

推荐阅读