![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| carácter de escape en tcsh | balareddy | Programación de scripts de shell y | 1 | 08-15-2008 06:58 AM |
| Carácter de escape | deepakpv | Programación de scripts de shell y | 4 | 02-16-2007 03:19 AM |
| awk / carácter de escape | OFFSIHR | Programación de scripts de shell y | 8 | 11-29-2006 01:28 PM |
| Carácter de escape en vi? | stevefox | Programación de scripts de shell y | 4 | 11-17-2005 03:38 PM |
| posible para escapar de la \ carácter sed? | gammaman | UNIX for Dummies Preguntas y Respuestas | 1 | 07-07-2005 03:49 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Hi All,
¿Cómo escribir en sed para el 6 y 7 de campo etc / passwd, ya que implica el archivo "/" personaje? Por debajo de las minas no es la correcta? Es incompleta script como i necesita ayuda con la sintaxis que yo siempre obtener errores mayo ![]() Ejemplo de etc / passwd el archivo: bla: x: 1055:600: bla, bla: / home / blah: / bin / ksh sed "s / \ ($ nombre:.: [0-9] *: \) [0-9] *: \ (.* \): \ (\ / .* \ / .* \): \ (\ / .* \ / .* \) Última edición por c00kie88; al 10-07-2008 09:17 AM.. |
|
||||
|
El separador después de s puede ser cualquier carácter. Asimismo, le recomiendo utilizar comillas simples alrededor de la secuencia de comandos a menos que específicamente necesita comillas dobles (en cuyo caso, las barras deben ser duplicado). Código:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'
Notificación de la mezcla de individuales y dobles comillas anteriormente. |
|
||||
|
He intentado eso, pero dice "SED: Comando ilegible:
|
|
||||
|
parece como:
sed "s / \ ($ nombre:.: [0-9] *: \) [0-9] *: \ (.* \): \ (/.*/.* \): \ (/.*/ .* \) / \ 1 $ respuesta \ 2 / "/ etc / passwd He intentado que la única oferta era sugerido, pero SED no es feliz |
|
||||
|
Repito: lo que necesita el doble de barras si utiliza comillas dobles. Se trata de un artefacto de la cáscara de los mecanismos de citar, no de sed sintaxis como tal. Si utiliza la barra de separación, usted no necesita ninguna barra barras que no son los separadores, pero es mejor utilizar simplemente un carácter separador. Código:
sed "s%\\($name:.:[0-9]*:\\)[0-9]*:\\(.*\\):\\(/.*/.*\\):\\(/.*/.*\\)%\1$answer\2%" /etc/passwd Con comillas simples, que se convierte en Código:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\)%\1'"$answer"'\2%' /etc/passwd
Las variables $ nombre o $ respuesta Obviamente, no puede contener el carácter separador en sus valores (o lo que necesita para escapar de los valores). Editado por última época; al 10-08-2008 03:15 AM.. Exposición de motivos: La necesidad de escapar de las variables que contengan el separador |
|
||||
|
Ok ..
Utilizo comillas simples .. sed 's / \ ( "$ nombre "':.:[ 0-9] *: \) [0-9] *: \ (.* \): \ (/.*/.* \): \ ( /.*/.* \) '/ etc / passwd pero todavía no es bueno .. ¿Qué hice mal? |
|
||||
|
Usted no es copiar + pegar correctamente, y no informar lo que el mensaje de error. "Todavía no hay buena" no es una utilidad de diagnóstico. Pero si usted cuidadosamente utilizar el ratón para copiar + pegar los comandos anteriores, y copia + pega cuidadosamente cualquier error aquí, podríamos ser capaces de ayudarle.
"Desconocido opción de s" significa que tiene algo después (lo que sed piensa que es) la separación de lo que no es una opción válida para el s / de / por / gp (aquí, "g" y "p" son las opciones). En este caso, es simplemente porque usted todavía utilizan la barra diagonal como separador, sin escapar de las barras que no son los separadores. Para cambiar el separador%, o escapar de las barras, según sea necesario. Asimismo, su comando es parcial; le falta la "a" parte \ 1 $ respuesta \ 2 |
![]() |
| Marcadores |
| Etiquetas |
| citando, sed sintaxis |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|