これ
$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