グループの場合、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 

おすすめ記事