Bash 如何使用grep查找包含“\n”字符的字符串?
我想使用强大的grep在目录中的MATLAB源文件中查找包含以下句子的字符串Bash 如何使用grep查找包含“\n”字符的字符串?,bash,grep,Bash,Grep,我想使用强大的grep在目录中的MATLAB源文件中查找包含以下句子的字符串 fprintf('Error: invalid indexes!\n'); 我尝试了以下命令,但它显示错误 grep -rl "fprintf(\'Error: invalid indexes!\\n\');" ./ 我尝试了中介绍的解决方案,但似乎不起作用 你能给我一些建议吗 此外,在找到匹配的字符串后,我想将它们替换为以下句子: if(length(invalid_idx)>0)
fprintf('Error: invalid indexes!\n');
我尝试了以下命令,但它显示错误
grep -rl "fprintf(\'Error: invalid indexes!\\n\');" ./
我尝试了中介绍的解决方案,但似乎不起作用
你能给我一些建议吗
此外,在找到匹配的字符串后,我想将它们替换为以下句子:
if(length(invalid_idx)>0) fprintf('Error: invalid indexes!\n'); end
我知道我们可以使用以下命令:
grep -rl "need_to_replaced_strings" ./ | xargs sed -i 's/need_to_replaced_strings/replaced_strings/g'
我不确定上面命令中替换的_字符串是否应该有一些特殊考虑
错误如下:
试试看
grep -rlF "fprintf('Error: invalid indexes"'!\n'"');" ./
试试这个:
$ grep -Erl 'fprintf\('\''Error: invalid indexes!\\n'\''\);' ./
fprintf('Error: invalid indexes!\n');
使用-E选项并将内部单引号“\转义到单引号字符串之外
或者,如果按以下方式通过“”转义单引号:
$ grep -Erl 'fprintf\('"'"'Error: invalid indexes!\\n'"'"'\);' ./
我想你想要的替代品太棒了
awk -vS="'" '{sub("fprintf\\("S"Error: invalid indexes!\\\\n"S"\\);","?",$0)}1' file
范例
输入
输出
但是它显示了错误,请发布这些错误消息。您尝试过grep的-F选项吗?@Jdamian,谢谢!我已经用错误信息更新了帖子,请检查一下。我看你还没有试过我的答案。@Jdamian,谢谢!我试过你的答案,但似乎有问题。谢谢你提供候选解决方案!我已经用手一根一根地替换了那些弦。。。。
dsfdsf
sdfds
fprintf('Error: invalid indexes!\n');
sdf
dsf
sdf
dsfdsf
sdfds
?
sdf
dsf
sdf