![]() |
|
|
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 |
| UNIX for Dummies Preguntas y Respuestas Si no está seguro de que para publicar un UNIX o Linux cuestión, puesto que aquí. Todos los novatos en Linux, UNIX y bienvenida! |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Muy urgente: - ¿Cómo comparar el uso de cadenas en caso de declaración | JISHA | Programación de scripts de shell y | 1 | 01-14-2008 03:41 AM |
| bucle while read w / if anidados uno - no tratar individualmente cada entrada | littlefrog | Programación de scripts de shell y | 7 | 12-11-2007 09:49 PM |
| De bucle de datos - captura de error | lumdev | Programación de scripts de shell y | 4 | 09-20-2007 08:50 AM |
| en caso de declaración en un bucle while | bobo | UNIX for Dummies Preguntas y Respuestas | 2 | 11-07-2006 12:38 PM |
| Ayuda con bucle si (comparación de cadenas) | psynaps3 | Programación de scripts de shell y | 4 | 07-07-2006 03:36 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
si en la declaración de bucle de una cadena
Estoy tratando de pasar una cadena en awk y bucle a través de él y, a continuación, para cada ocurrencia de un cierto carácter de realizar una acción. En este caso, por ejemplo, echo 1 para r carácter cada vez se encuentra en la cadena. Excepto que no puedo lograr que funcione. ¿Podría alguien por favor dígame ¿por qué?
echo $ cadena | awk '( for (i \u003d 1; i <\u003d longitud ($ 0), i + +) hacer if (substr ($ 0, i, 1) \u003d\u003d "r") echo "1" fi hecho ) ' |
|
||||
|
Gracias por su respuesta, pero me gustaría que a través de bucle de la cadena y, a continuación, realizar una acción para cada ocurrencia de r, y no sólo una vez. por ejemplo. "rover" volvería 11 en este ejemplo porque son dos r en ella.
He intentado adaptar el código por lo que se ve algo como esto: echo $ cadena | awk '( for (i \u003d 1; i <\u003d longitud ($ 0), i + +) hacer if [[(substr ($ 0, i, 1) \u003d\u003d * r *)]] y, a continuación, echo "1" fi; hecho ) ' pero obtener analizar errores por todas partes: awk: cmd. línea: 4: si [[(substr ($ 0, i, 1) \u003d\u003d * r *)]] y, a continuación, awk: cmd. línea: 4: parse error ^ awk: cmd. línea: 4: si [[(substr ($ 0, i, 1) \u003d\u003d * r *)]] y, a continuación, awk: cmd. línea: 4: parse error ^ awk: cmd. línea: 4: si [[(substr ($ 0, i, 1) \u003d\u003d * r *)]] y, a continuación, awk: cmd. línea: 4: parse error ^ Más ideas? |
|
||||
|
Cita:
Con el debido respecto, quisiera decir que lo anterior no puede resolver el problema, es tener OP. Él no está buscando. de ocurrencia de un caracter en una cadena. Y el comando anterior dará siempre como salida 1 si hay uno o más de una ocurrencia de "r" La amabilidad de corregir si me equivoco Gaurav |
|
|||||
|
Cita:
Buenas capturas. |
|
||||
|
Gracias gauravgoel, que era justo lo que estaba buscando. Gracias por tu esfuerzo y, vino.
|
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|