Tratamiento de cadenas

Longitud:
cadena="holamundo"
len(cadena)
cadena=holamundo
${#cadena}
Obtener subcadena: En Python se indica el primero y el último+1.En bash el primero y la cantidad.
>>> cadena[2:5]
"lam"
${cadena:2:3}
lam
Split:
cadena = "adios:mundo:cruel"
trozos = cadena.split(":")
print trozos[0]
IFS=:
declare -a trozos=($cadena)
echo ${trozos[0]}
Es subcadena?:
"mund" in "holamundo"
[[ "holamundo" =~ "mund" ]]   # Ok, it's substring
Reemplazar subcadena:
cad2 = cad1.replace("foo", "bar")
cad2=${cad1/foo/bar}

Subcadenas (con expresiones regulares)

foo=/tmp/mi.directorio/imagen.png
path = ${foo%/*}     # /tmp/mi.directorio
file = ${foo##*/}    # imagen.png
base = ${file%%.*}    # imagen
ext = ${file#*.}      # png

fqdn = www.example.net
server = ${fqdn%%.*}  # www

Variables de entorno

Comprobaciones

[ -n "${VAR+x}" ]    # Fails if VAR is unset
[ -n "${VAR:+x}" ]   # Fails if VAR is unset or empty
[ -n "${VAR-x}" ]    # Succeeds if VAR is unset
[ -n "${VAR:-x}" ]   # Succeeds if VAR is unset or empty

Ficheros

Generar un fichero dado su contenido

cat > .hg/hgrc << EOF
contenido del fichero
aunque tenga muchas
lineas
EOF

os.path.isdir(nombre)

if [ -d nombre]; then    # si es un directorio
...
fi

os.path.isfile(nombre)

if [ ! -e nombre ]; then   # si no es un fichero
...
fi

Librería estándar

os.path.abspath readlink -f
os.path.dirname dirname

Referencias



blog comments powered by Disqus