그룹의 경우 sed -E

그룹의 경우 sed -E

이것

$echo '| foo | bar | baz |' | sed 's@^|[^|]*|\([^|]*\)|.*@\1@'

bar요청 시 반품하세요. opt 로 동일한 작업을 어떻게 수행할 수 있나요 -E?

https://www.gnu.org/software/sed/manual/html_node/Extended-regexps.html

답변1

노력하다:

$ echo '| foo | bar | baz |' | sed -E 's@^\|[^|]*\|([^|]*)\|.*@\1@'
 bar

노트:

  1. 확장 정규식에서는 (...)구성보다는 그룹이 사용됩니다 \(...\).

  2. 확장 정규식에서는 |일반적으로 교대를 의미합니다. 문자로 해석하려면 이스케이프 처리해야 합니다. (이 규칙의 예외는 일반 문자만 [...]있는 경우입니다.|

대안: awk를 사용하세요

$ echo '| foo | bar | baz |' | awk -F\| '{print $3}'
 bar 

관련 정보