【问题标题】:Curl/sed command not processing inputs correctlyCurl/sed 命令未正确处理输入
【发布时间】:2017-10-25 19:10:58
【问题描述】:

我在让它做我想做的事情时遇到了一些麻烦。

read -p "URL to read: " U

read -p "Word to fin: " O

read -p "Filename: " F

curl -O $U | sed "s/\<$O\>/\*$O\*/g" > $F.txt

所以基本上我想要的是使用curl 从一个u​​rl 获取一个.txt 文件,然后对其进行排序以找到用户输入指定的单词。然后用* 标记所有这些单词并将它们放入用户指定的文件中。 几乎完全相同的代码在 Linux 中工作,但这在我的 Mac 上不起作用。有人有想法吗?

【问题讨论】:

    标签: linux macos curl sed


    【解决方案1】:

    两个问题:

    • -O 使curl 存储下载的文件,不输出它在stdout
    • 字边界元字符\&lt;\&gt; 是GNU extension。在 BSD sed 上,您可以改用 [[:&lt;:]][[:&gt;:]]

    这应该适用于 OSX:

    curl "$U" | sed "s/[[:<:]]$O[[:>:]]/\*$O\*/g" > $F.txt
    

    【讨论】:

    • 哦,好的。我没有指定的问题是它仍然将整个 http://....../ txt 文件存储在新文件中。它没有找到我要查找的单词.. 非常感谢,这有帮助!
    猜你喜欢
    • 2012-11-09
    • 2017-06-29
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多