我有一个循环遍历几行的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并让它搜索整行?
答案 0 :(得分:2)
您可能没有为具有搜索模式的变量添加引号
search_pattern_variable="chr11 105804693"
grep "$search_pattern_variable" input-file
由于您的变量包含单词chr11 105804693
,shell
将单词拆分为多个单词并使用默认IFS
(字段分隔符),并使用chr11
作为模式和105804693
作为文件名,它报告没有看到这样的文件。
查看bash
中Word-Splitting的含义。