Recorte uma string até um certo caractere [closed]

0

Eu pesquisei no site e já vi perguntas semelhantes, mas não consegui fazê-las funcionar. Tentei seguir: Dividindo uma string até um local específico mas não funcionou. Eu trabalho com o Korn.

Eu quero principalmente que o diretório de um arquivo seja passado. Então o arquivo seria:

/home/me/working/from/here/howareyou.txt

Então eu quero começar:

/home/me/working/from/here/

Eu tentei isso, mas não funcionou:

THEDIR="${1%//*}"

Mas apenas cuspiu todo o parâmetro. Qualquer ajuda seria apreciada. Obrigado.

    
por dev4life 06.03.2015 / 22:36

2 respostas

2

Use uma barra

THEDIR="${1%/*}"

Mais lento, mas mais fácil de lembrar é dirname .

    
por 06.03.2015 / 22:54
-1

Eu gosto de usar o corte, em associação com o rev. Basicamente, você canaliza o caminho completo do arquivo para rev, para inverter o nome da string. Então, você canaliza para cortar, com um "-" após o número do campo que você quer, e então, você o inverte novamente.

Isso resulta em algo assim:

echo "$name" | rev | cut -d'/' -f2- | rev

Se você ainda não sabe, corte a string em torno de um caractere delimitador, indicado por -d, e selecione o campo desejado, indicado por -f (passando-o 2 significando que você deseja a segunda parte do caractere string), adicionando um caractere minus que quer que você queira até o final da string (não usar menos interromperia a string na próxima ocorrência do delimitador)

    
por 06.03.2015 / 23:22