grep 대신 sed를 사용하여 행의 일치하는 부분만 출력

grep 대신 sed를 사용하여 행의 일치하는 부분만 출력

나는 간단한 bash 스크립트를 작성 중이고(실제로 이 작업을 수행하는 방법을 배우고 있음) 이 함수가 echo와 sed를 사용하고 정확히 동일한 출력을 반환하기를 원합니다. sed로 솔루션을 찾았는데 콘솔에서는 작동하지만 스크립트 내부에서는 작동하지 않습니다. (스크립트는 sudo로 호출됩니다. 어쩌면 그게 중요할 수도 있습니다)

이것은 내 기능입니다.

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

이것이 작동하는 방식입니다

입력: "-벽"
출력: "-벽"

입력: "-O3%## -Wall"
출력: "-O3"

입력: "%#$#$"
출력: ""

누구든지 sed를 사용하는 것이 어떤 것인지 보여줄 수 있습니까?

답변1

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

관련 정보