Como uso o sed para criar uma lista com marcadores?

1

Eu tenho a seguinte lista:

➜ cat list.txt
job titles
    site reliability engineer
    automation
        automation engineer
        automation architect
        integration specialists

Eu quero receber o seguinte list2.txt :

* job titles
    * site reliability engineer
    * automation
        * automation engineer
        * automation architect
        * integration specialists

Tenho certeza de que esse é um bom trabalho para sed . Eu sei como obter o "início da linha"

➜ sed 's/^/foo/g' list.txt
foojob titles
foo    site reliability engineer
foo    automation
foo        automation engineer
foo        automation architect
foo        integration specialists

E eu pensei que poderia conseguir "o início da linha seguido por qualquer número de caracteres até o início de uma palavra", no entanto, isso não funcionou.

➜ sed 's/^.*\</foo/g' list.txt
job titles
    site reliability engineer
    automation
        automation engineer
        automation architect
        integration specialists

Então, agora eu estou querendo saber, como eu substituo "o início da linha até o início de uma palavra, com tudo isso, exceto um * acrescentado"? Obrigado pela sua ajuda:)

    
por mbigras 21.09.2016 / 02:45

1 resposta

4

Uma abordagem seria encontrar o primeiro caractere que não seja espaço em branco e colocar o marcador antes

sed 's/[^[:blank:]]/* &/' list.txt
* job titles
    * site reliability engineer
    * automation
        * automation engineer
        * automation architect
        * integration specialists
    
por 21.09.2016 / 03:02