이것
$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
노트:
확장 정규식에서는
(...)
구성보다는 그룹이 사용됩니다\(...\)
.확장 정규식에서는
|
일반적으로 교대를 의미합니다. 문자로 해석하려면 이스케이프 처리해야 합니다. (이 규칙의 예외는 일반 문자만[...]
있는 경우입니다.|
대안: awk를 사용하세요
$ echo '| foo | bar | baz |' | awk -F\| '{print $3}'
bar