![grep 대신 sed를 사용하여 행의 일치하는 부분만 출력](https://linux55.com/image/81138/grep%20%EB%8C%80%EC%8B%A0%20sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%96%89%EC%9D%98%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EB%B6%80%EB%B6%84%EB%A7%8C%20%EC%B6%9C%EB%A0%A5.png)
나는 간단한 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