对包含带制表符的字符串的变量执行grep



我有一个for循环,它在几行上循环。每行有两个字符串,用一个标签将它们隔开,例如

chr11   105804693

当我将变量与要搜索的文件一起传递给grep时,它将返回"105804693: No such file or directory"。我的代码如下:

用于$中的行(cat list_of_lines);执行grep$line file_to_search_in>>output_file;完成

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

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

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

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

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

查看"分词"在bash中的含义。

最新更新