Categoría: GNU/Linux

Bash: tr

Cambio de caja en un archivo de texto

Un truco rápido con el comando Unix tr, vamos a convertir las letras mayúsculas a minúsculas de un fichero.

Fichero test.txt:

$ cat test.txt
minusculas
MAYUSCULAS

Convertir mayúsculas en minúsculas del fichero test.txt:

$ cat test.txt | tr [:upper:] [:lower:]
minusculas
mayusculas

Convertir minúsculas en mayúsculas del fichero test.txt:

$ cat test.txt | tr [:lower:] [:upper:] MINUSCULAS MAYUSCULAS

Por supuesto, el comando tr nos ofrece muchas más opciones para transformación de carácteres, os dejo la ayuda del comando, recordad que en las páginas man hay mucha más información.

$ tr --help
Modo de empleo: tr [OPCIÓN]... CONJUNTO1 [CONJUNTO2]
Traducir, comprimir, y/o borrar caracteres de la entrada estándar,
escribiendo a la  entrada estándar.

  -c, -C, --complement    primer compliment SET1
  -d, --delete            borrar caracteres en SET1, no traducir
  -s, --squeeze-repeats   reemplazar cada secuencia de entradas de un caracter repetido
                            esta es una lista de SET1 con una sóla coincidencia
                            de ese caracter
  -t, --truncate-set1     primero truncar SET1 a la longitud de SET2
      --help     muestra esta ayuda y finaliza
      --version  informa de la versión y finaliza

Los CONJUNTOs se especifican como cadenas de caracteres. La mayoría se
representan a sí mismos.
Las secuencias válidas son las siguientes:

  \NNN            carácter con valor octal NNN (de uno a tres dígitos)
  \\              barra invertida
  \a              pitido audible (BEL)
  \b              espacio hacia atrás
  \f              salto de página
  \n              salto de línea
  \r              retorno de carro
  \t              tabulación horizontal
  \v              tabulación vertical
  CAR1-CAR2       todos los caracteres comprendidos entre CAR1 y CAR2 contados
                  en orden ascendente
  [CAR*]          en CONJUNTO2, copias de CAR hasta que se alcance la longitud
                  de CONJUNTO1
  [CAR*REPITE]    copia REPITE veces CAR; REPITE es octal si comienza con 0
  [:alnum:]       todas las letras y dígitos
  [:alpha:]       todas las letras
  [:blank:]       todos los espacios en blanco horizontales
  [:cntrl:]       todos los caracteres de control
  [:digit:]       todos los dígitos
  [:graph:]       todos los caracteres imprimibles, sin incluir el espacio
  [:lower:]       todas las letras minúsculas
  [:print:]       todos los caracteres imprimibles, incluyendo el espacio
  [:punct:]       todos los caracteres de puntuación
  [:space:]       todos los espacios en blanco horizontales y verticales
  [:upper:]       todas las letras mayúsculas
  [:xdigit:]      todos los números hexadecimales
  [=CAR=]         todos los caracteres que son igual que CAR

Se produce la traducción si no se especifican CONJUNTO1 y CONJUNTO2, siempre
y cuando no aparezca la opción -d. -t se puede usar sólo al traducir.
CONJUNTO2 se expande a la longitud de CONJUNTO1, repitiendo su último
carácter tantas veces como sea necesario.  Los caracteres que sobran en
CONJUNTO2 no se tienen en cuenta. Solamente se garantiza que [:lower:]
y [:upper:] sean expandidos en orden ascendente; si se usa en
CONJUNTO2 al traducir, sólo se pueden usar en parejas, para
especificar conversión a mayúsculas.  -s usa CONJUNTO1 si no se está
traduciendo ni borrando; si no, la compresión usa CONJUNTO2 después de
la traducción o el borrado.

articulo original: http://rm-rf.es/sobre/convertir/
Anuncios

Aprendre Vi d’una manera lúdica

Hi ha una manera d’aprendre a fer servir el vi d’una manera lúdica. Fins ara tothom havia tirat de les xuletes o Cheat Sheets per trobar les combinacions de tecles, però ara, amb unes horetes de pràctica i amb aquest joc ens convertirem amb uns usuaris notables de l’editor i deixar-nos d’estirar els cabells.

VIM Adventures és un joc Online basat amb les combinacions de tecles del propi editor de moviment i operadors. El joc es molt enginyós i fa memoritzat automàticament els enllaços de tecles del vi.

Per què fer servir el vi?

El vi és un editor de text molt primitiu però suficient per editar arxius de text per escriure codi font. La seva funcionalitat a fet que no canvii gaire al llarg dels anys i sigui l’editor predeterminat en la majoria de sistemes Unix, de forma que conèixer mínimamanet el vi és imprescindible per operar en moltíssims sistemes operatius.

Vim: versió millorada del vi

Arreglar Ubuntu d’una destrossa

A vegades passa actualitzes el sistema i et peta tot.
Cal instal·lar el sistema des de zero?

Hi han dues possibilitats que pots provar per recuperar el sistema de la destrucció.

Si la destrossa és mínima, obre el terminal i tecleja:

>sudo apt-get install -f

Si la destrossa és brutal, obra el terminal i tecleja:

>sudo dpkg-reconfigure -phigh -a

Esperes una horeta i ja!

Descarregar vídeos del Youtube: youtube-dl

youtube-dl és un petit programa que s’executa des de l’intèrpret de comandaments, altrament dit,  la consola, o el shell…i serveix per descarregar vídeos del YouTube.com i uns pocs sites més. Es necessita l’intèrpret Python  a partir de la versió 2.x (x almenys la 6) i funciona sobre Unix, Windows o Mac OSX. Té un llicència de domini públic , lo que vol dir que el codi pot ser modificat, es pot redistribuir i es pot fer servir per lo que es vulgui.

Instal·lació sobre linux

La instal·lació no pot ser més fàcil. Cal obrir la consola i posar les següent paraules:

>sudo apt-get install youtube-dl

El sistema operatiu ens demanarà el pass de superusuari. El picarem, premerem enter i llestos . Simple, no?

Per descarregar-nos un vídeo haurem d’executar el youtube-dl seguit del link del video. El vídeo se’ns guardarà a la carpeta home per defecte. Per exemple, per descarregar-nos aquest vídeo http://www.youtube.com/watch?v=ksm7f3ey1bc , obrirem la consola i picarem el següent:

>youtube-dl http://www.youtube.com/watch?v=ksm7f3ey1bc

Possibles problemes 

La primera vegada que el vaig fer servir em va aparèixer un  error que deia alguna cosa així

ERROR: unable to download video

que anul·lava el procés.  Ho vaig solucionar actualitzant el programa de la següent manera:

>sudo youtube-dl -U

Opcions

Es poden fer més coses amb youtube-dl com canviar la qualitat de descàrrega del vídeo, el nom del fitxer descarregat o descarregar per lots vídeos a partir dels links apuntats en un arxiu de text.  Recordeu que podeu veure les opcions invocant el man.

>man youtube-dl

També les podeu consultar en aquest altre post.

Bash: cut

Como su propio nombre indica, el comando cut tiene la característica de poder cortar caracteres y campos, con la posibilidad de usar delimitadores y otras opciones, para finalmente extraer las partes seleccionadas de cada fichero en la salida estándar.

El comando cut nos ofrece los siguientes argumentos:

-b, –bytes=LISTA       muestra solamente estos bytes
-c, –characters=LISTA  selecciona solamente estos caracteres
-d, –delimiter=DELIM   usa DELIM en vez de caracteres de tabulación para delimitar los campos
-f, –fields=LISTA selecciona solamente estos campos; también muestra cualquier línea que no tenga un carácter delimitador, a menos que se especifique la opción -s
-n (no tiene efecto)
–complement complementa el conjunto de bytes, caracteres o campos seleccionados.
-s, –only-delimited    no muestra las líneas que no contienen delimitadores
–output-delimiter=CADENA  utiliza CADENA como el delimitador del resultado. Por omisión se utiliza el
delimitador de la entrada
–help muestra esta ayuda y finaliza
–version informa de la versión y finaliza

Vamos a hacer unos ejemplos sencillos, saquemos un texto por pantalla:

$ echo "Esto es una prueba, 1 2 3, probando"
Esto es una prueba, 1 2 3, probando

Bien, utilizando como delimitador por ejemplo la coma, podemos dividir en 3 partes el texto, podemos mostar cada una de esas tres partes (fields) con la opción -f :

$ echo "Esto es una prueba, 1 2 3, probando"  | cut -d "," -f 1
Esto es una prueba
$ echo "Esto es una prueba, 1 2 3, probando"  | cut -d "," -f 2
 1 2 3
$ echo "Esto es una prueba, 1 2 3, probando"  | cut -d "," -f 3
 probando

¿Y si quisieramos sacar solamente unos caracteres en concreto? Usaremos el argumento -c:

$ echo "Esto es una prueba, 1 2 3, probando"  | cut  -c 1-4
Esto
$ echo "Esto es una prueba, 1 2 3, probando"  | cut  -c 6-8
es
$ echo "Esto es una prueba, 1 2 3, probando"  | cut  -c 9-12
una
$ echo "Esto es una prueba, 1 2 3, probando"  | cut  -c 14-18
rueba
$ echo "Esto es una prueba, 1 2 3, probando"  | cut  -c 13-18
prueba

http://rm-rf.es/unix-uso-del-comando-cut/