Bash - 对用户定义的字符串使用 grep

Bash - 对用户定义的字符串使用 grep

有时我发现能够在字符串上使用 grep(字符串不在文件中)非常有用。

例如:

var="Some random string"
$var | grep -e "Some"

我想我可以使用echo $var | grep ...,但我真的不希望字符串写在控制台上。

答案1

echo $var | grep -e "Some"实际上是正确的方法。当使用 grep 管道输出时|,它不再出现在控制台上。从Bash 的手册页

管道

管道是由控制运算符 或 分隔的一个或多个命令序列||&管道的格式为:

[time [-p]] [ ! ] command [ [|│|&] command2 ... ]

的标准输出command通过管道连接到 的标准输入command2。此连接在命令指定的任何重定向之前执行(请参阅 REDIRECTION)。如果|&使用 ,则 的标准错误通过管道command连接到的标准输入;它是 的简写。标准错误的这种隐式重定向在命令指定的任何重定向之后执行。command22>&1 |

答案2

bash 现在允许这里的字符串,例如:

var="Some random string"
grep -e "Some" <<<"$var"

相关内容