Используйте tee
:
users | tee file | wc -w
В качестве вывода выдает количество пользователей и записывает файл с пользователями в качестве содержимого.
Случай в вашем вопросе :
command >file | command2
Это не сработает. С помощью > file
вы перенаправляете вывод команды
в файл file
, и там же вывод записывается в анонимный канал, где команда command2
читает на другом конце. Это неоднозначное перенаправление.
Команда tee
примет файл
в качестве аргумента, в котором tee
записывает все, что получает со стандартного ввода. tee
также записывает все, от стандартного ввода до стандартного вывода, откуда вы можете перенаправить на другие команды или файлы.
locate
es muy versátil, puede tomar -r y un patrón de expresión regular, por lo que puede hacer muchas coincidencias sofisticadas. Por ejemplo, para hacer coincidir directoriosa
a0
a1
y así sucesivamente, use '/a[0-9]*/'
. Esto solo mostrará directorios con archivos, ya que necesita el segundo /
en la ruta. Para hacer coincidir solo el directorio, use $
para anclar el patrón al final de la ruta, '/a[0-9]*$'
.
Tenga en cuenta que hay al menos 2 versiones del comando locate
, una de GNU y otra de Redhat (conocida como mlocate ). Use --version
para encontrar cuál tiene. Difieren ligeramente en el estilo de expresiones regulares. Por ejemplo, si cambiamos el patrón anterior '/a[0-9]*$'
para usar +
en lugar de *
para evitar la coincidencia de a
por sí solo, entonces mlocate necesita \+
y gnu solo +
.
Por ejemplo, para hacer coincidir un directorio a
y todo lo que se encuentra debajo de él, puede usar ambas versiones
locate -r '/a\(/\|$\)'
Para mlocate puede usar el prefijo --regex
que usa sintaxis extendida
locate --regex '/a(/|$)'
Para hacer lo mismo con la ubicación de gnu, necesitaría agregar la opción --regextype egrep
, por ejemplo.
Стандартные команды Linux для этого:
find
команда для поиска имен файлов, например:
найдите файлы с именем xyz в/tmp
$ find /tmp -type f -name xyz
искать каталоги, имя которых содержит 'xyz' в/tmp
$ find /tmp -type d -name '*xyz*'
команды find и grep для поиска в содержимом файла, например:
найти в /tmp
файлы, содержащие xyz
$ find /tmp -type f -exec grep -l xyz {} \;