【问题标题】:sed is adding character to start of word vs endsed 正在将字符添加到单词的开头与结尾
【发布时间】:2017-07-25 16:37:27
【问题描述】:

所以我想添加一个“!”从我的placesCap文件到我的placesCapEx文件中每个单词的结尾

这就是它的样子: Yugoslavian Zambia Zambian Zomba

这就是我想要的样子: Yugoslavian! Zambia! Zambian! Zomba!

我试过sed 's/$/\!/' Wordlists/placesCap > Wordlists/placesCapExsed 's/$/!/' Wordlists/placesCap > Wordlists/placesCapEx

当我运行它然后 cat Wordlists/placesCapEx 它输出时会发生什么 !ugoslavian !ambia !ambian !omba

我做了一些研究,有人说它是 Unix 的东西,但他们从未详细说明

【问题讨论】:

    标签: bash unix sed passwords word-list


    【解决方案1】:

    您更简单的 sed 命令应该适用于行尾是单个换行符的文本文件。您可能在此处有“dos”格式文件(回车/换行)。

    考虑:

    $ cat zippy
    Zippy
    $ od -c zippy
    0000000   Z   i   p   p   y  \r  \n
    0000007
    $ sed 's/$/!/' zippy
    !ippy
    $ sed 's/$/!/' zippy | od -c
    0000000   Z   i   p   p   y  \r   !  \n
    0000010
    

    你会看到终端上显示 \r 的效果:将光标移动到行首,打印 '!',换行到下一行。

    要将 \r\n 对的存在作为您的行尾字符,您可以尝试:

    $ sed 's/\r*$/!/' zippy
    Zippy!
    

    ...假设您的 sed 像我的 (GNU sed 4.2.2) 一样尊重 \r。

    【讨论】:

    • 这正是我所需要的,谢谢!也感谢您对问题的解释!
    猜你喜欢
    • 2013-06-27
    • 2011-10-29
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多