Curl / sed命令未正确处理输入

时间:2017-10-25 19:10:59

标签: linux macos curl sed

我遇到一些麻烦,让它做我想做的事。

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从url获取.txt文件,然后对其进行排序以找到用户输入指定的单词。然后用*标记所有这些单词并将它们放在用户指定的文件中。 几乎完全相同的代码在Linux中工作,但这在我的Mac上不起作用。有人有个主意吗?

1 个答案:

答案 0 :(得分:1)

两个问题:

  • -O会使curl存储下载的文件,不会在stdout上输出
  • 字边界元字符\<\>是GNU extension。在BSD sed上,您可以使用[[:<:]][[:>:]]代替。

这应该适用于OSX:

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