每当我迭代的目录中的文件包含使用grep
的字符串时,我都会尝试在bash脚本中执行某些操作。问题在于目录中的文件子集在名称中包含空格。因此,我尝试使用sed
替换具有转义空格的空格:
if grep -c "main" ${source} | sed 's/ /\\ /g'; then
# do something
fi
但是,我仍然收到错误:
grep:/ Users / me / Desktop / theDir / nameWith:没有这样的文件或目录
grep:spaces.txt:没有这样的文件或目录
我做错了什么?
答案 0 :(得分:4)
您应该引用grep' ed文件的名称:
if grep -c main "$source" ; then
# do something
fi
...假设$source
是文件的名称。如果$source
是目录的名称,我将需要有关您尝试执行的操作的更多信息。