grep包含带有制表符的字符串的变量

时间:2017-01-22 16:20:47

标签: bash grep

我有一个循环遍历几行的for循环。每一行都有两个字符串,一个标签将它们隔开,例如

chr11   105804693

当我将变量传递给grep并带有要搜索的文件时,返回"105804693: No such file or directory"。我的代码看起来像这样:

  

for $(cat list_of_lines);       做grep $ line file_to_search_in>>输出文件;       完成

我尝试printf变量并返回"chr11"但是当我回显变量时它返回"chr11 105804693"

如何在变量上调用grep并让它搜索整行?

1 个答案:

答案 0 :(得分:2)

您可能没有为具有搜索模式的变量添加引号

search_pattern_variable="chr11 105804693"
grep "$search_pattern_variable" input-file

由于您的变量包含单词chr11 105804693shell将单词拆分为多个单词并使用默认IFS(字段分隔符),并使用chr11作为模式和105804693作为文件名,它报告没有看到这样的文件。

查看bashWord-Splitting的含义。