Como posso remover uma string do começo de cada linha de texto? [duplicado]

0

Eu pego o conteúdo de um diretório com du -a /test1 | cut -f2 e obtenho isto:

/test1/file1
/test1/directory1
/test1/directory1/file2

Minha esperança é usar algo como cut , sed ou grep para dizer "o que quer que seja $(pwd) , corte isso na frente da saída".

Por exemplo, se / test1 / continha outro diretório chamado 'test1', eu gostaria de manter esse subdiretório na minha saída, então se eu tivesse:

/test1/test1/

minha saída seria idealmente

test1/

Obrigado pela sua ajuda.

EDITAR: Eu tentei as dicas descritas em Use sed em uma string variável em vez de um arquivo . Eu posso obter uma saída semelhante ao que meu exemplo procura, mas ele tira mais de uma instância de / test1 por linha ou só opera na primeira linha da variável. Não está agindo da mesma forma que "Para o início de cada linha, remova $(pwd) , mas apenas uma vez por linha"

O usa sed em uma string resposta está trabalhando apenas na primeira linha da minha variável multi-linha. O tópico de variáveis de várias linhas não é abordado na resposta dada. Sua solução funciona porque a variável PATH não contém novas linhas. No meu caso, só funciona na primeira linha da variável que não é a saída desejada.

    
por Volumetricsteve 28.12.2017 / 03:05

1 resposta

0

Leia man bash , especialmente a parte sobre "Expansão de Parâmetros" e faça algo como:

a="/a/b/c"
echo "$a"
b="${a%/*}"
echo "$b"
c="${b%/*}"
echo "$c"
    
por waltinator 28.12.2017 / 05:28