Comando Sed Introduccion Parte II

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Sed: Introduccin a SED - Parte II

Marzo 2015

SED: The Stream EDitor - Part II


Este artculo es una introduccin al uso del editor de flujo SED. El articulo intenta cubrir ciertas funcionalidades poco conocidas, por no decir casi
desconocidas, que hacen de SED una herramienta indispensable en la caja de herramientas de todo usuario de Linux que desea dominar el
procesamiento de ficheros va una consola y un shell.
Los delimitadores
Delimitadores de comandos
Delimitador de patrn
El metacaracter '&'
Las subexpresiones y las referencias hacia atrs
Las subexpresiones
Las referencias hacia atrs
Expresin regular precedente
La negacin
La agrupacin de comandos
El reemplazo de variables
Las expresiones regulares
Los caracteres de escape
Otros
Las clases de caracteres
Las diferentes versiones
Unix
Windows
Depuradores
Cuando no debo utilizar Sed
Limites conocidos de las diferentes versiones
Referencias
Libros
Enlaces
Principiantes y conocedores
Avanzados
IRC

Los delimitadores
Delimitadores de comandos
De manera predeterminada, Sed utiliza como delimitador para su mecanismo de substitucin la barra oblicua / (slash):
sed 's/patrn/reemplazo/' fichero
Para la mayora de casos, esta opcin por defecto resulta suficiente, pero puede resultar un problema si el patrn o la cadena de reemplazo tambin
contienen uno o ms slashes como en el caso de la ruta de un archivo. Evidentemente puedes proteger los slashes anteponindoles un / (anti-slash o barra
oblcua invertida), pero esto resulta una operacin muy fastidiosa si el patrn (o la cadena de reemplazo) contiene varios, volviendo la lectura del cdigo
bastante difcil:
sed 's/\/home\/jp\/Docs\/CCM\/SED/\/mnt\/servidor\/docs/' fichero
Hasta puede ser imposible si el patrn (o la cadena de reemplazo) es una variable que debe ser interpretada:
var="/home/jp/Documentos/CCM/SED/"
sed 's/'$var'/\/mnt\/servidor\/docs/' fichero
o (expresin entre doble apstrofes)
sed "s/$var/\/mnt\/servidor\/docs/" fichero
Felizmente, Sed permite reemplazar el delimitador por defecto con el carcter de nuestra eleccin (#,|,!,,etc.), siempre y cuando no forme parte del patrn
(o la cadena de reemplazo):
sed 's#/home/jp/Docs/CCM/SED#/mnt/servidor/docs#' fichero

Este carcter puede ser cualquier letra siempre y cuando no est contenida en el patrn (o la cadena de reemplazo):
echo "hola" | sed 'sZbZBZ'
Si utilizas el carcter ! (signo de exclamacin) como separador, debes encerrar la expresin con apostrofes simples para que el shell no interprete el
carcter ! (empleado normalmente para gestionar el historial de los comandos).

Delimitador de patrn
Como lo hemos visto, Sed utiliza un patrn, encerrado entre / (slash), para buscar coincidencias en las lneas de un fichero. El slash utilizado por defecto,
puede ser cambiado por cualquier otro carcter, simplemente anteponiendo a la primera ocurrencia de este carcter un \ (backslash). Tomemos el ejemplo
de una ruta como criterio de bsqueda. Bajo est forma, vemos que la lectura del cdigo no es fcil:
sed -n '/\/home\/jp\/Docs\/CCM\/SED/p' fichero
Sin embargo, si utilizamos el carcter almohadilla # como delimitador, tendremos:
sed -n '\#/home/jp/Docs/CCM/SED#p' fichero

El metacaracter '&'
A menudo, el mecanismo de substitucin se limita a buscar un patrn a fin de substituirlo por si mismo y agregndole algo, por ejemplo, buscar la cadena
Sed the Stream EDitor en un fichero y agregarle Sed the Stream EDitor (Editor de flujo). Podramos escribir:
sed 's/Sed the Stream EDitor/Sed the Stream EDitor (Editor de flujo)/g' fichero
El metacaracter & (Ampersand) nos permite reemplazar todas las cadenas de caracteres que coinciden con el patrn (o la expresin regular) ingresado
como 1er argumento.
Aqu la nocin de primer argumento no es muy explicita, pero se vera su importancia con las expresiones regulares y en el capitulo de las subexpresiones. Por lo tanto nuestro comando se escribir de esta manera:
sed 's/Sed the Stream EDitor/& (Editor de flujo)/g' fichero
Supongamos que tenemos que buscar todas las cadenas numricas (1 o varias cifras consecutivas) en un fichero y deseamos anteponer a cada una de
estas cadenas n (observa el espacio despus de el ). El comando seria:
sed 's/[0-9][0-9]*/n &/g' fichero
Necesariamente se debe utilizar la expresin \& para obtener un & literal en una cadena de reemplazo, si no se generarn errores.

Las subexpresiones y las referencias hacia atrs

Las subexpresiones
\(...\) Una subexpresin es una parte de una expresin regular, encerrada entre parntesis, que posteriormente podemos utilizar en la substitucin. Los
parntesis deben ser protegidos con backslashes, a menos que la opcin -r haya sido empleada.

Las referencias hacia atrs


\1 \2 \5 Para referirnos a cada subexpresin en la cadena de reemplazo, utilizamos un nmero que corresponde a la posicin que ocupa en la expresin
regular. Este nmero debe estar protegido por un backslash. nicamente podemos referirnos a 9 subexpresiones numeradas del \1 al \9. Estas referencias
tambin son llamadas referencias hacia atrs. A continuacin algunos ejemplo con nombre de ciudades francesas y su cdigo postal correspondiente:
Archivo de referencia:
$ cat plop
31000 Toulouse34000 Montpellier66000 Perpignan
En este ejemplo, la subexpresin \([0-9]*\) coincidir con cualquier cadena numrica y es referenciada por la referencia hacia atrs \1:
$ sed 's/\([0-9]*\).*/\1/' plop
310003400066000
Esta vez, buscamos las coincidencias de 2 subexpresiones, una numrica y la otra conteniendo el resto de la lnea, pero sin incluir el carcter de tabulacin
que separa el cdigo postal del nombre de la ciudad. Luego utilizamos la referencia hacia atrs \1 (cdigo postal) y \2 (nombre de la ciudad) para mostrar el
resultado bajo la forma: nombre de la ciudad > cdigo postal.

$ sed 's/\([0-9]*\)\t\(.*\)/\2 > \1/' plop


Toulouse > 31000Montpellier > 34000Perpignan > 66000
En este tercer y ltimo ejemplo, buscamos las coincidencias de una subexpresin con cada parte de la lnea, es decir el cdigo postal (\1), la tabulacin (\2)
y el nombre de la ciudad (\3)
$ sed 's/\([0-9]*\)\(\t\)\(.*\)/\3\2\1/' plop
Toulouse
31000Montpellier 34000Perpignan

66000

Una referencia hacia atrs puede llamar a una subexpresin las veces que se desee en la cadena de reemplazo. Retomando el ltimo ejemplo, veamos la
demostracin con la repeticin de la tabulacin en diversos lugares:
$ sed 's/\([0-9]*\)\(\t\)\(.*\)/\2\3\2\2\1/' plop
Toulouse
31000
Montpellier

34000

Perpignan

66000

Expresin regular precedente


Cuando encuentra una coincidencia entre una cadena y una expresin regular, Sed pone en su buffer dicha cadena por lo que es posible referirse a esta
cadena en la 1ra parte del comando de substitucin s (LHS) sin mencionarla literalmente. En otras palabras, un comando del tipo
's//cadena_de_reemplazo/' substituir la ultima expresin regular encontrada por Sed con la cadena_de_reemplazo. Para ilustrar esto, retomemos nuestro
fichero con las ciudades y los cdigos postales. Vamos a buscar las lneas que contengan el patrn Montpellier, las otras sern borradas (d) y
substituiremos Montpellier por Bziers:
$ cat plop
31000 Toulouse34000 Montpellier64000 Perpignan$ sed '/Montpellier/!d; s//Bziers/' plop34000 Bziers
Para tratar lo relacionado a las subexpresiones, referencias hacia atrs y expresin regular precedente, el ejemplo precedente muestra otra faceta de las
posibilidades que ofrece sed. Si el patrn buscado es encerrado entre parntesis, entonces se convierte en una subexpresin que luego puede ser
invocada en la parte derecha del comando s:
sed '/\(Montpellier\)/!d;s//Bziers-\1/' plop
34000 Bziers-Montpellier$ sed '/\(Mon\)tpellier/!d;s//Bziers-\1blanc/' plop34000 Bziers-Monblanc

La negacin
A veces puede ser til excluir una lnea que coincide con un patrn (o un rango de lineas) para que no sea procesada. Para ello, Sed utiliza el carcter !
(signo de exclamacin) que como en la mayora de herramientas derivadas de Unix expresa la negacin, exactamente como lo hace el comando grep -v.
Para ello, tan solo hay que poner a continuacin del patrn (o el numero de lnea o rango de lineas) el carcter !:
sed -n '3 !p' fich.txt
sed -n '3,8 !p' fich.txtsed -n '/indice/! p' fich3.txt
A menudo encontramos en los scripts Sed, la expresin $! que significa mientras no se alcance la ultima lnea y permite efectuar uno o varios comandos
mientras esta condicin sea verdadera. Podemos comparar diferentes maneras de escribir la sintaxis de un comando, pero obteniendo un mismo resultado.
echo -e 'a\nb\n\nc\nd\ne\n\nf\ng' | sed '/./! d'
echo -e 'a\nb\n\nc\nd\ne\n\nf\ng' | sed '/^$/ d'echo -e 'a\nb\n\nc\nd\ne\n\nf\ng' | sed -n '/^$/! p'echo -e 'a\nb\n\nc\nd\ne\n\nf\ng' | sed -n '/./ p'

La agrupacin de comandos
/direccin/{...} (acepta un rango de direcciones) Las llaves permiten agrupar comandos que sern ejecutados en una direccin o en un rango de
direcciones. Dentro de la agrupacin de estos comandos podemos encontrar otras direcciones as como otros comandos agrupados tambin entre llaves.
Su principal funcin, indicar una lnea (o rango de lneas) y aplicar sucesivamente uno o varios comandos. El procesamiento es realizado sobre el
contenido del buffer y no sobre la lnea original, por lo que las modificaciones realizadas pueden condicionar los criterios de seleccin posteriores.
sed '
/a/{ # solo la lnea que contiene "a"s/a/c/g # reemplazar todas las "a" por "c"/c/{

# solo la lnea que contiene "c" de la lnea que coincides/c/A/g # reemplazar todas

En un grupo de comandos (en un script), cada comando debe iniciar sobre su propia lnea, las llaves y el conjunto de comandos deben estar en lneas
separadas. La llave que abre debe encontrarse al final de la lnea, mientras que la llave que cierra debe necesariamente encontrarse sola en una lnea.
Atencin, no debe haber ningn espacio despus de las llaves.

El reemplazo de variables
Puede darse el caso que dentro de un script Sed necesitemos pasar una variable como argumento, ya sea como patrn o en una u otra de las partes (LHS o
RHS) durante una substitucin. Como lo mencione anteriormente, habr que prestar atencin a los caracteres presentes en la variable a fin de adaptar los
apstrofes a utilizar. En efecto, por defecto Sed utiliza apstrofes simples para encerrar las expresiones, pero este mecanismo en shell bloquea justamente
la expansin de las variables; por lo que el empleo de apstrofes simples impedir una buena interpretacin de la variable.
var=A; echo 'azerty' | sed 's/a/$var/'
$varzerty
Inicialmente, es posible reemplazar estos apstrofes simples por apstrofes dobles, lo que en la mayora de casos ser suficiente para permitir la
interpretacin correcta de la variable.

var=A; echo 'azerty' | sed "s/a/$var/"


Azerty
Sin embargo puede ser ms conveniente utilizar esta sintaxis:
var=A; echo 'azerty' | sed 's/a/'"$var"'/'
Azerty
En este caso, no es muy fcil comprender por qu es preferible utilizar una mezcla de apstrofes simples y dobles. En realidad, la palabra "mezcla" no es el
trmino mas apropiado, es ms apropiado emplear la palabra "excluir", ya que con esta sintaxis, excluimos la variable de la expresin, lo que permite que
sea interpretada por el shell, pero protege dentro de la expresin la interpretacin de posibles caracteres propios al shell. Para comprender mejor esto,
veamos un ejemplo: La visualizacin por el shell de 6 letras del alfabeto, cada una en una lnea, en la que la letra A es repetida dos veces. Despus de
haber asignado esta letra (A) a una variable ($var), vamos a pedir a Sed que no muestre las lneas conteniendo esta variable, empleando la sintaxis
incluyendo la negacin, es decir el signo de exclamacin (!). Primero, escribamos la expresin con apstrofes simples:
var=A; echo -e "A\nB\nC\nA\nD\nE" | sed -n '/$var/!p'
ABCADE
Observamos que todas las letras son mostradas y es normal ya que la variable no ha sido interpretada por el shell debido a los apstrofes simples. Ahora,
pongamos la expresin entre apstrofes dobles:
var=A; echo -e "A\nB\nC\nA\nD\nE" | sed -n "/$var/!p"
-l: !p": event not found
El shell nos devuelve un mensaje de error ! Efectivamente, el ! es un carcter reservado del shell que sirve para el historial de los comandos y no ha podido
ser interpretado como tal. Separemos la variable de la expresin propia a Sed encerrando la expresin justo antes de la variable y volvindola a abrir justo
despus utilizando apostrofes simples (observa que los apstrofos dobles alrededor de la variable son opcionales, pero que es preferible dejarlos, ya que
es una buena costumbre a considerar para prevenir posibles errores debidos a espacios dentro de la variable).
$ var=A; echo -e "A\nB\nC\nA\nD\nE" | sed -n '/'"$var"'/!p'
BCDE

Las expresiones regulares


El conocimiento de expresiones regulares (regexp) es un plus en la prctica de Sed (y de muchos otros lenguajes) Una expresin regular es un patrn
(pattern en ingls) para buscar coincidencias con cadenas de caracteres. La potencia de las expresiones regulares radica en su capacidad de incluir
alternativas y repeticiones en la elaboracin del patrn. Estas particularidades son elaboradas utilizando caracteres especiales, que no son interpretados
literalmente, sino de una manera especifica. A continuacin una breve descripcin de la sintaxis de las expresiones regulares utilizadas en Sed. carcter
(cualquier carcter): Coincide con un carcter nico. * Coincide si el carcter o conjunto de caracteres que el precede est presente 0 o ms veces. Puede
ser un carcter ordinario, un carcter especial protegido por un \, un punto (.), un grupo de expresin regular o una subexpresin. \+ Idntico a *, pero indica
que la expresin anterior puede ocurrir una o varias veces. \? Idntico a *, pero indica que la expresin anterior puede ocurrir 0 o 1 vez. \{i\} Idntico a *, pero
coincide con exactamente i secuencia de la ocurrencia de la expresin precedente (i representa un entero). \{i,j\} Coincide con una secuencia comprendida
entre i y j incluyndolas. \{i,\} Coincide con una secuencia mayor o igual a i. \(regexp\) Coincide con un conjunto de expresiones regulares, llamado tambin
subexpresin y que puede ser direccionada por referencia hacia atrs (back referente). . un punto: Cualquier carcter, excepto una nueva lnea. ^ Coincide
con una cadena nula al inicio de la lnea, es decir lo que se encuentra despus del acento circunflejo debe aparecer al inicio de lnea o al inicio de una
subexpresin. $ Idntico a ^ pero la coincidencia es al final de la lnea o subexpresin. [lista] Coincide con cualquier carcter de la lista. Una lista puede
estar constituida por una secuencia de letras como [a-z] lo que equivale a una coincidencia con cualquier carcter comprendido en a y z incluidos. Para
incluir un ] hazlo figurar en primera posicin en la lista. Para incluir un - ponlo en la primera o ultima posicin de la lista. Para incluir un ^ ponlo despus del
primer carcter de la lista. Por lo general, los caracteres $, *, ., [, y \ no son considerados como caracteres especiales dentro de una lista. De este modo la
expresin [\*] corresponder tanto al carcter \ como al carcter *, el carcter \ no es considerado como un carcter de escape para proteger el carcter *.
[^lista] A la inversa, un ^ al inicio de lista, har coincidir con cualquier carcter excepto los de la lista. Para incluir un ] hazlo figurar en la primera posicin
en la lista justo despus de el signo ^. regexp1\|regexp2 Coincidencia con regexp1 o regexp2. La bsqueda de coincidencias se hace con cada una de
las alternativas, de izquierda a derecha y la primera que es encontrada es utilizada. Observa el carcter \ para proteger el carcter |. \nmero Coincide con
la ensima subexpresin \ (...\) utilizada en la expresin regular. Las subexpresiones, llamadas tambin "referencias hacia a tras", son implcitamente
numeradas de izquierda a derecha contando el numero de ocurrencias de \(, con un mximo de 9. \n Coincide con el carcter nueva lnea (LF)
\mtacaracter Coincide con un metacaracter entre $, *, ., [, \, o ^, debiendo ser protegido para una interpretacin literal. Nota: En la bsqueda de una
coincidencia, esta es efectuada de izquierda a derecha, y si dos o ms expresiones tienen el mismo carcter inicial, la coincidencia ser hecha con la
expresin ms larga.

Los caracteres de escape


\a alarma (campana bip) (BEL, Ctrl-G, 0x07). \b borrado hacia atrs (BS, Ctrl-H, 0x08). \f fin de pgina (FF, Ctrl-L, 0x0C). \n fin de lnea (LF, Ctrl-J, 0x0A). \r
retorno de carro (CR, Ctrl-M, 0x0D). \t tabulacin horizontal (HT, Ctrl-I, 0x09). \v tabulacin vertical (VT, Ctrl-K, 0x0B) \o000 carcter cuyo valor en el sistema
octal es 000 (de una a tres cifras) [0-7] \dDDD carcter cuyo valor en el sistema decimal es DDD (de una a tres cifras) [0-9] \xHH carcter cuyo valor en el
sistema hexadecimal es HH [0-9A-F]

Otros
\` coincide con una cadena nula al inicio de la lnea (idntico a ^). ' coincide con una cadena nula al final de la lnea (idntico a $). \b coincide con una
cadena vaca al extremo de una palabra. Denota el lmite entre una palabra y un carcter que no sea una palabra. \B coincide con una cadena vaca que no
se encuentre al extremo de una palabra. Denota el lmite entre un carcter, salvo una palabra, y una palabra. \w cualquier palabra de la clase: [A-Za-z0-9_]
(underscore _ incluido). \W cualquier palabra que no pertenezca a la clase: [^A-Za-z0-9_] (underscore _ incluido) \s cualquier carcter de espaciado:
espacio, tabulacin horizontal o vertical. \S uno o varios caracteres de espaciado. \< coincide con una cadena vaca al inicio de una palabra. \> coincide con
una cadena vaca al final de una palabra. \e fin de conversin de maysculas o minsculas. \l conversin del prximo carcter en minscula. \L conversin
de los caracteres restantes en minscula. \u conversin del prximo carcter en mayscula. \U conversin de los caracteres restantes en mayscula.

Las clases de caracteres

[:alnum:] caracteres alfanumricos [A-Za-z0-9] [:alpha:] caracteres alfabticos [A-Za-z] [:digit:] cifras [0-9] [:lower:] caracteres en minsculas [a-z] [:upper:]
caracteres en maysculas [A-Z] [:print:] caracteres imprimibles [ -~] [:punct:] caracteres de puntuacin [!-/:-@[-`{-~] [:space:] espacios, tabulaciones y
cualquier carcter vaco [ \t\v\f]. [:blank:] espacio y tabulacin [ \x09]. [:graph:] cualquier carcter imprimible [!-~] (excepto los espacios vacos). [:cntrl:]
caracteres de control [\x00-\x19\x7F]. [:xdigit:] nmeros hexadecimales [0-9a-fA-F].

Las diferentes versiones


Unix
GNU sed v4.0.5 (Gsed) Descarga. Ultima versin oficial de GNU Sed ofreciendo la edicin actual (-i). Ssed v3.60 Descarga. (Small/Stupid Stream EDitor)
Versin recomendada BSD multi-byte sed Descarga (Japonesa basada en la ultima versin de GNU Sed).

Windows
GnuWin32-Sed v4.1.5 Descargar. La versin ejecutable para MS Windows 95 / 98 / ME / NT / 2000 y XP.

Depuradores
A continuacin 2 depuradores que te permitirn comprender mejor el funcionamiento de Sed y, en algunos casos, te ahorrarn enormes horas de trabajo.
sd.ksh y sd.sh.txt son dos pequeos scripts escritos en Korn shell y Bourne shell respectivamente que incluyen un manual de uso al final del fichero. sedsed
est escrito en Python (por lo que debe ser instalado en tu sistema) y te permite visualizar el estado del buffer y los comandos interpretados. A continuacin
un mini tutorial para el uso de sedsed.
Usage : sedsed OPTION [-e sedscript] [-f sedscriptfile] [inputfile]
OPCIONES: -f, --file
lectura de los comandos desde el fichero indicado

-e, --expression

permite encadenar varios comandos

-n, --quiet

solicitud impl

Significado a la salida: PATT: Muestra el contenido del espacio patrn (memoria principal). HOLD: Muestra el contenido de la memoria secundaria. COMM:
El comando SED debe ser ejecutado. $ Delimita el contenido de PATT y HOLD. La sintaxis ms comn es el modo debug simple (-d):
echo -e "AAA\nBBB\nCCC\nDDD" | sed '/BBB/ {n;s/C/Z/2}'
echo -e "AAA\nBBB\nCCC\nDDD" | sedsed -d '/BBB/ {n;s/C/Z/2}'
<a href='http://www.commentcamarche.net/faq/images/0-B4IoZAnt-debogage-d.png'><a href='http://www.commentcamarche.net/faq/images/0-B4IoZAntdebogage-d.png'>

</a></a> Esquema: debogage_-d.png En modo indentacin:


sedsed -i -n ':notag;/tag/!{1!H;1h;x;s/\n/ /g;x;$b lastline;d;};/tag/{x;/^$/!p;$b lastline;d;b notag;};:lastline;x;p;'

Esquema: debogage_indent.png Ocultar la visualizacin de la memoria secundaria:


echo -e "AAA\nBBB\nCCC\nDDD" | sedsed -d --hide=HOLD -n '/BBB/ {n;s/C/Z/2p}'

Cuando no debo utilizar Sed

Cuando ya existen herramientas apropiadas y efectan la tarea fcilmente y con mayor rapidez, por ejemplo: Bsqueda de patrn simple: grep "patrn"
fichero # sed -n "/patrn/p' fichero Exclusin de un patrn simple: grep -v "patrn" fichero # sed "/patrn/!d' fichero Bsqueda de patrn y visualizacin
de lneas de contexto antes/despus: grep -A1 -B1 "patn" fichero # sed -n '/patrn/! {x;d;}; /patrn/{x;p;x;p;n;p;x;}' fichero Numeracin de lneas: cat -n
fichero # sed -e '=' fichero | sed 'N;s/\n/\t/' nl fichero Eliminacin de saltos de lnea tr '\n' ' ' < fichero# sed ':bucle; N; $! b bucle; s/\n//g' fichero Eliminacin
de caracteres individuales tr -d "[w-z]" < fichero # sed 's/[w-z]//g' fichero Repeticin de caracteres echo "Booonjoouuur" | tr -s "ou" # echo "Booonjoouuur"
| sed 's/oo*/o/g;s/uu*/u/' Transposicin de caracteres echo "ABCDEF" | tr "[A-F]" "[a-f]" # echo "ABCDEF" | sed 'y/ABCDEF/abcdef/' Formato de ficheros,
mejor utilizar los comandos: fold, fmt y par. Para ciertas tareas que awk y perl las realizan mucho mas fcil y rpido, como por ejemplo: contar campos y
caracteres, contar lneas de un bloque u objetos de un fichero, operaciones matemticas, calcular la longitud de una cadena, manipular datos binarios,
bucles en tablas o listas, etc.

Limites conocidos de las diferentes versiones


A continuacin algunos lmites conocidos de las versiones distribuidas de Sed, dependiendo claro estas del hardware, la memoria, el sistema operativo y
de las libreras C utilizadas durante la compilacin de Sed. Longitud mxima de una lnea: GNU sed: sin limitacin ssed: sin limitacin Tamao mximo
de la memoria principal y secundaria: GNU sed: sin limitacin ssed: sin limitacin Nmero mximo de ficheros que pueden ser ledos por el
comando "r": GNU sed v3+: sin limitacin ssed: sin limitacin GNU sed v2.05: el total de lecturas (r) y escrituras (w) no debe exceder 32. Numero
mximo de ficheros que pueden ser escritos por el comando "w": GNU sed v3+: sin limitacin ssed: sin limitacin GNU sed v2.05: el total de lecturas
(r) y escrituras (w) no debe exceder 32. Tamao mximo de un nombre de etiqueta GNU sed: sin limitacin ssed: sin limitacin BSD sed: 8 caracteres
Tamao mximo de nombre de fichero en escritura GNU sed: sin limitacin ssed: sin limitacin BSD sed: 8 caracteres Numero mximo de
conexiones GNU sed: sin limitacin ssed: sin limitacin

Referencias
A continuacin encontraras algunas obras as como los sitios Web que utilice para elaborar este artculo.

Libros
sed & awk, Second Edition

Enlaces

Principiantes y conocedores
info sed man sed Sed - An Introduction and Tutorial THE SED FAQ sed, a stream editor HANDY ONE-LINERS FOR SED
Avanzados
scripts tutoriales
IRC
Freenode irc://irc.freenode.net/#sed
El documento Sed: Introduccin a SED - Parte II de Kioskea (es.kioskea.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo bajo las
condiciones sealadas por esta licencia. Debers hacerla siempre visible y dar crdito a Kioskea.

También podría gustarte