grep:文件中的行没有这样的文件或目录

hayid63222

我试图 grep 文件中的每一行,对于每个匹配的 echo PASS,对于每个不匹配的 echo FAIL。我收到“没有这样的文件或目录”错误,它似乎是在尝试 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 的标准输入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章