【问题标题】:copy each part of text to the specific place in file ( same file, global)将文本的每一部分复制到文件中的特定位置(同一个文件,全局)
【发布时间】:2014-02-28 04:56:47
【问题描述】:

我有这个问题..文件看起来像这样

<p><a href="http://www.mydomain.com/ask/company/somefile.pdf" >somecrap</a></p>
<p><a href="http://www.mydomain.com/ask_me/company/somefile22122.pdf" >somecrap</a></p>
<p><a href="http://www.mydomain.com/ask_new/company/somefile22122.pdf" >somecrap</a></p>

部分文本必须复制并插入到同一文件中的正确位置(somecrap),每一行必须是 包含相同的 url 示例

<p><a href="http://www.mydomain.com/ask/company/somefile.pdf" >http://www.mydomain.com/ask/company/somefile.pdf</a></p>`
<p><a href="http://www.mydomain.com/ask_me/company/somefile22122.pdf" >http://www.mydomain.com/ask_me/company/somefile22122.pdf</a></p>
<p><a href="http://www.mydomain.com/ask_new/company/somefile22122.pdf" >http://www.mydomain.com/ask_new/company/somefile22122.pdf</a></p>

【问题讨论】:

    标签: sed awk


    【解决方案1】:

    最好使用 xml 解析器。对于一次性破解,以下应该可以工作:

    sed -r 's/href="([^"]+)" >[^<]+/href="\1" >\1/' file
    

    如果您的输出看起来没问题,那么您可以使用-i 选项进行文件内更改。

    $ cat file
    <p><a href="http://www.mydomain.com/ask/company/somefile.pdf" >somecrap</a></p>
    <p><a href="http://www.mydomain.com/ask_me/company/somefile22122.pdf" >somecrap</a></p>
    <p><a href="http://www.mydomain.com/ask_new/company/somefile22122.pdf" >somecrap</a></p>
    

    $ sed -r 's/href="([^"]+)" >[^<]+/href="\1" >\1/' file
    <p><a href="http://www.mydomain.com/ask/company/somefile.pdf" >http://www.mydomain.com/ask/company/somefile.pdf</a></p>
    <p><a href="http://www.mydomain.com/ask_me/company/somefile22122.pdf" >http://www.mydomain.com/ask_me/company/somefile22122.pdf</a></p>
    <p><a href="http://www.mydomain.com/ask_new/company/somefile22122.pdf" >http://www.mydomain.com/ask_new/company/somefile22122.pdf</a></p>
    

    【讨论】:

      【解决方案2】:

      添加一个笨拙的 awk 方式,适用于您的示例:

      awk -F'>[^<]+<' '{split($0,a,"\"");OFS=">"a[2]"<"}$1=$1' file
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-29
        • 2013-12-09
        • 2013-04-23
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多