¿Cómo puedo manipular cuerdas en conchas de pescado?

¿Cómo puedo manipular cuerdas en conchas de pescado?

¿Cómo puedo realizar manipulaciones de cadenas estilo bash en Fish shell?

Específicamente, en bash

read branch < ".git/HEAD"
branch=${branch#ref: refs/heads/}

Pondrá el nombre de la rama en $branchla variable.

¿Cómo puedo hacer lo mismo con la concha de pescado?

Revisé la documentación sobre peces pero no encontré nada.

Respuesta1

La concha de pescado ahora tiene un stringcomando incorporado.

Para usar stringen lugar de seden su caso:

set branch (string replace 'ref: refs/heads/' '' <.git/HEAD)

Puede operar con argumentos dados o con entradas estándar.

Hay mucho más que stringse puede hacer. Desde eldocumentación del comando de cadena:

Synopsis

string length [(-q | --quiet)] [STRING...]
string sub [(-s | --start) START] [(-l | --length) LENGTH] [(-q | --quiet)]
           [STRING...]
string split [(-m | --max) MAX] [(-r | --right)] [(-q | --quiet)] SEP
             [STRING...]
string join [(-q | --quiet)] SEP [STRING...]
string trim [(-l | --left)] [(-r | --right)] [(-c | --chars CHARS)]
            [(-q | --quiet)] [STRING...]
string escape [(-n | --no-quoted)] [STRING...]
string match [(-a | --all)] [(-i | --ignore-case)] [(-r | --regex)]
             [(-n | --index)] [(-q | --quiet)] [(-v | --invert)] PATTERN [STRING...]
string replace [(-a | --all)] [(-i | --ignore-case)] [(-r | --regex)]
               [(-q | --quiet)] PATTERN REPLACEMENT [STRING...]

Respuesta2

El pescado tiene que ver con el minimalismo: si hay una utilidad común que hace el trabajo fácilmente, no es el pescado. Entonces, como dices, con sed:

set branch (sed 's#^ref: refs/heads/##' .git/HEAD)

información relacionada