使用 sed 而不是 grep 只输出行的匹配部分

使用 sed 而不是 grep 只输出行的匹配部分

我正在编写简单的 bash 脚本(实际上正在学习如何做到这一点),我希望这个函数仅使用 echo 和 sed 并返回完全相同的输出。我找到了 sed 的解决方案,它们在控制台中工作,但在脚本内部不起作用。 (脚本是用sudo调用的,也许这很重要)

这是我的功能:

function strip
{
     echo "$1" | grep -oP '[a-zA-Z0-9\+\-\=\ ]+' | head -n 1;
}

这就是它的工作原理

输入:“-Wall”
输出:“-Wall”

输入:“-O3%## -Wall”
输出:“-O3”

输入:“%#$#$”
输出:“”

谁能展示使用 sed 会是什么样子?

答案1

echo ___abc___ | sed 's/^.*\(abc\).*$/\1/'
abc

相关内容