Edit: Eu pedi emprestado o -r
flag (permite sintaxe de regex estendida) de jimmij para curar backlashitis.
Os seguintes trabalhos, sob as seguintes condições:
- você está disposto a dizer que o separador de campo é pelo menos n espaços, por exemplo 3
- o conteúdo do campo de interesse não inclui um espaço em lugar algum.
Nesse caso, esse regex funciona:
echo ' 01 Title Chapter 01' |
sed -r 's/^.* {3,}([^ ]+) {3,}.*$//'
Ou, caso você goste das barras invertidas, isso é o que parece na sintaxe de regex não extendida:
echo ' 01 Title Chapter 01' |
sed 's/^.* \{3,\}\([^ ]\+\) \{3,\}.*$//'
Explicação do regex:
^ start of line
.* any number of characters at the start of the line
{3,} at least 3 spaces
([^ ]+) 1 or more non-space characters (capture this group as )
{3,} at least 3 spaces
.* anything on the rest of the line
$ end of the line. Not needed, because of the .*, but nicely explicit.