Alterna duas seqüências de comprimento arbitrário separadas por um símbolo

0

Estou tentando dividir um nome de arquivo consistindo de um número arbitrário de palavras separadas por espaço em duas cadeias separadas procurando a primeira ocorrência de um símbolo '-' e, em seguida, alterne a ordem dessas cadeias. Por exemplo, se o nome do arquivo for originalmente

word1 word 2 ... word9 - wordA wordB ... wordZ

então a saída desejada é

wordA wordB ... wordZ - word1 word2 ... word9

Note que pode haver mais de uma palavra nos dois lados do '-'. Meu código de sed é

sed -r 's/([a-zA-Z0-9]+) \- ([a-zA-Z0-9])*/ \- /'

Minha pergunta é como especificar um número arbitrário de palavras antes e depois do '-' no sed. Estou ciente de que o sed suporta apenas até 9 padrões.

Li uma pergunta anterior , mas a questão é sobre a mudança um número fixo de palavras conhecido.

    
por Global nomad 30.01.2016 / 11:34

1 resposta

2

Tente isto:

echo 'word1 word 2 ... word9 - wordA wordB ... wordZ' | sed 's/\(.*\) - \(.*\)/ - /'

Saída:

wordA wordB ... wordZ - word1 word 2 ... word9
    
por 30.01.2016 / 12:08

Tags