Ambos lados, revisión anterior
Revisión previa
Próxima revisión
|
Revisión previa
Próxima revisión
Ambos lados, revisión siguiente
|
es:howtos:general_admin:cli_constructs_and_useful_info [2019/02/07 19:01 (UTC)] slackwarespanol [Quoting] |
es:howtos:general_admin:cli_constructs_and_useful_info [2019/02/07 19:53 (UTC)] slackwarespanol [Regular expressions] |
== Enlaces externos === | == Enlaces externos === |
* http://www.commandlinefu.com/commands/browse | * http://www.commandlinefu.com/commands/browse |
==== Cita ==== | ==== Comilla ==== |
Las citas pueden parecer complicadas, y las razones de ello son oscuras, pero tiene un propósito y no es tan complicado. | Las comillas pueden parecer complicadas, y las razones de ello son oscuras, pero tiene un propósito y no es tan complicado. |
=== Doble cita === | === Doble comillas === |
La razón para la doble cita es para preservar espacios, como espacios en nombres de archivos. La doble cita de una variable o una sustitución de comando lo convierte en un solo argumento. Un ejemplo: | La razón para la comilla doble es para preservar espacios, como espacios en nombres de archivos. La doble cita de una variable o una sustitución de comando lo convierte en un solo argumento. Un ejemplo: |
<code bash> | <code bash> |
bash-4.2$ ls | bash-4.2$ ls |
bash-4.2$ | bash-4.2$ |
</code> | </code> |
Clearly you need to quote a file with spaces. You could use single quotes here, because no variables were inside the quotes. You should not quote in this case: | Claramente necesitas encomillar un archivo con espacios. Puede usar comillas simples aquí, porque no hay variables dentro de las comillas. No debes encomillar en este caso: |
<code bash> | <code bash> |
bash-4.2$ for i in $(seq 1 10); do printf "$i "; done; echo; | bash-4.2$ for i in $(seq 1 10); do printf "$i "; done; echo; |
bash-4.2$ | bash-4.2$ |
</code> | </code> |
Nor should you quote in any case where a command requires multiple variables and you give them to it inside one quoted variable. A quoted variable is then taken as the only argument, rather than multiple arguments. An example: | Tampoco debe encomillar en ningún caso en que un comando requiera múltiples variables y se las asigne dentro de una variable encomillada. Una variable encomillada se toma entonces como el único argumento, en lugar de múltiples argumentos. Un ejemplo: |
<code> | <code> |
bash-4.2$ ls | bash-4.2$ ls |
bash-4.2$ | bash-4.2$ |
</code> | </code> |
Also note that you can and should quote within command substitutions, as shown by the ''replace a suffix'' example above and: | También tenga en cuenta que puede y debe encomillar dentro de las sustituciones de comandos, como se muestra en el ejemplo anterior "reemplazar un sufijo" y: |
<code bash> | <code bash> |
mkdir "$(basename "$(pwd)")" | mkdir "$(basename "$(pwd)")" |
</code> | </code> |
This makes a directory within the current directory called the same name as the current directory. If ''pwd'' expands into something with spaces, the command will work. | Esto crea un directorio dentro del directorio actual llamado el mismo nombre que el directorio actual. Si '' pwd '' se expande en algo con espacios, el comando funcionará. |
=== Single quoting === | === Comilla simple === |
The reason for single quoting is to escape special characters from the shell, while passing them to a command so it can use them. You should use single quotes for every argument passed to another program that contains shell characters to be interpreted by that program and **NOT** by the shell. Example: | La razón para la comilla simple es para escapar caracteres especiales de la shell, mientras se los pasa a un comando para que pueda usarlos. Debe usar comillas simples para cada argumento pasado a otro programa que contenga caracteres de shell para que sean interpretados por ese programa y ** NO ** por el shell. Ejemplo: |
<code bash> | <code bash> |
bash-4.2$ find -name *.txt | bash-4.2$ find -name *.txt |
bash-4.2$ | bash-4.2$ |
</code> | </code> |
Here the shell expands ''*'' before find sees it. You should single quote input to ''awk'', ''find'', ''sed'', and ''grep'', as each of these uses special characters that overlap with the shells', and thus they must be protected from shell expansion. | Aquí el sehell se expande '' * '' antes de encontrarla. Debe ingresar la entrada de comillas a '' awk '', '' find '', '' sed '' y '' grep '', ya que cada uno de ellos utiliza caracteres especiales que se superponen con las del shell, y por lo tanto deben ser Protegido de la expansión del shell. |
=== External Links === | === Enlaces externos === |
* http://www.grymoire.com/Unix/Quote.html | * http://www.grymoire.com/Unix/Quote.html |
==== Regular expressions ==== | ==== Expresiones regulares ==== |
=== Basic === | === Básico === |
* ''.'' matches any single character. | * ''. '' coincide con cualquier carácter individual. |
* ''\'' escapes the next character. | * '' \ '' evita del siguiente carácter. |
<note>Remember to escape the ''.'' using ''\.'' if you want an actual ''.'' | <note>Recuerde que debe evitar ''. '' usando '' \. '' Si quieres un verdadero ''. '' |
<code> | <code> |
bash-4.2$ cat test.txt | bash-4.2$ cat test.txt |
test | test |
</code></note> | </code></note> |
* ''[]'' is a class and matches anything inside the brakets for a single character. Examples: | |
* ''[Yy]'' matches Y or y. | * '' [ ] '' es una clase y combina cualquier cosa dentro de los corchetes para un solo personaje. Ejemplos: |
* ''[a-z0-9]'' includes a range, and in this case matches a through z and 0 through 9. | * '' [Yy] '' coincide con Y o y. |
* ''[^a-z]'' negates the range, so in this case it matches anything but a through z. | * '' [a-z0-9] '' incluye un rango, y en este caso coincide con a a través de z y de 0 a 9. |
* ''^'' matches the beginning of a line. Example: ''^a'' matches an a at the beginning of a line. | * '' [^ a-z] '' niega el rango, por lo que, en este caso, se ajusta a cualquier cosa excepto a a z. |
* ''$'' matches the end of a line. Example: ''a$'' matches an a at the end of a line. | * '' ^ '' coincide con el principio de una línea. Ejemplo: '' ^ a '' coincide con una a al principio de una línea. |
* ''\<'' matches the beginning of a word. Example: ''\<a'' matches an a at the beginning of a word. | * '' $ '' coincide con el final de una línea. Ejemplo: '' a $ '' coincide con una a al final de una línea. |
* ''\>'' matches the end of a word. Example: ''a\>'' matches an a at the end of a word. | * '' \ <'' coincide con el principio de una palabra. Ejemplo: '' \ <a '' coincide con una a al principio de una palabra. |
* Example: ''\<[tT]he\>'' matches the word ''the'' or ''The''. | * '' \> '' coincide con el final de una palabra. Ejemplo: '' a \> '' coincide con una a al final de una palabra. |
* ''*'' matches any number of the previous character or nothing = no character. Example: ''[0-9]*'' which will match any number of numbers. ''.*'' matches any number of anything. | * Ejemplo: '' \ <[tT] he \> '' coincide con la palabra '' el '' o '' El ''. |
| * '' * '' coincide con cualquier número del carácter anterior o nada = ningún carácter. Ejemplo: '' [0-9] * '' que coincidirá con cualquier número de números. ''. * '' coincide con cualquier número de cualquier cosa. |
=== Extended regular expressions === | === Extended regular expressions === |
The following must be supported by the program for them to work. For example for grep you must run ''egrep'' or ''grep -E''. | The following must be supported by the program for them to work. For example for grep you must run ''egrep'' or ''grep -E''. |