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"
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.
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"