Comando shell para remover a primeira cadeia que é delimitada por barras

1

Eu preciso de um comando shell (sed ou awk é o preferido) para remover a string que está dentro das barras.

Por exemplo, se minha string for /some/dir/example/ , a saída deverá ser dir/example/

    
por Thushi 06.06.2014 / 13:05

3 respostas

2

Com sed , você pode fazer:

INPUT | sed 's|^/[^/]*/||'

Mas isso é necessário apenas para dados de tipo de arquivo - para argumentos de shell, você já tem a resposta.

    
por 06.06.2014 / 13:17
4
 $ string=/some/dir/example/
 $ printf '%s\n' "${string#/*/}"
 dir/example/

Essa é a sintaxe do shell POSIX.

    
por 06.06.2014 / 13:09
0

Através de awk ,

$ echo '/some/dir/example/' | awk -F'/' -v OFS='/' '{ print $3,$4FS}'
dir/example/

OR

$ echo '/some/dir/example/' | awk -F'/' '{ print $3FS$4FS}'
dir/example/
    
por 06.06.2014 / 15:29

Tags