【发布时间】:2011-10-04 10:08:19
【问题描述】:
我正在尝试编写一个 bash 脚本,该脚本将在一个 txt 文件中搜索存储在变量中的另一个 txt 文件中的字符串。但是,该字符串中包含许多特殊字符,并且由于某种原因,它似乎正在破坏 grep 命令。 字符串如下: Sometxt ^/someurl/?$ http://somewebsite.com/
我使用的 grep 命令是
grep -v "$string" file.txt >> new_file.txt
这似乎不起作用,如果我使用以下命令回显实际的 grep 命令:
echo "grep -v \"$string\" file.txt >> new_file.txt"
我得到一个混乱的输出。
如果我输入 grep 命令手册并输入实际字符串,它工作正常,所以我假设我的 shell 正在尝试扩展特殊字符,但我不知道如何在字符串中转义所有这些字符。
有人有什么想法吗?
谢谢。
【问题讨论】:
-
echo 是找出“真正正在执行的内容”的糟糕方法 - 为此使用
set -x。