bash - grep:文件中的行没有这样的文件或目录
问题描述
我正在尝试 grep 文件中的每一行,并且对于每个匹配回显通过,对于每个不匹配回显失败。我收到“没有这样的文件或目录”错误,它似乎是在尝试 grep 文件而不是我在循环中传递的行?
文件:
$ cat new.txt
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
失败的脚本:
#!/bin/bash
while IFS= read -r line
do
if grep -P 'TLS_RSA' $line; then
echo "PASS."
else
echo "FAIL."
fi
done < "new.txt"
当对文件运行正常的 grep 命令时,这是输出(预期):
$ grep -P 'TLS_RSA' new.txt
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
解决方案
我建议更换
if grep -P 'TLS_RSA' $line; then
和
if grep -q 'TLS_RSA' <<< "$line"; then
为 grep 的标准输入提供变量的内容。
推荐阅读
- ocr - IOS PDFKit 有 OCR 功能吗?
- node.js - pool.request 不是函数
- android - 存在 viewpager 性能问题的导航组件
- python - 在一系列任务结束后运行一些清理任务的最佳方法是什么
- r - 在 Rstudio 中,read.xlsx 函数创建了更多用 'NA's 填充的列,它不应该
- excel - 运行时错误 5981,应用程序定义或对象定义错误
- java - 在使用 OHS 的 Weblogic 12.2.1 上的 HTTP 基本身份验证中两次询问用户名和密码
- excel - 过滤单元格中的非零值并在单独的列/工作表中复制大数据的值
- c++ - 如何避免在 Windows 10 上崩溃后重新启动应用程序
- python - 根据特定条件重命名键