GNU/Linux >> Znalost Linux >  >> Linux

Jak najít soubory obsahující dva řetězce dohromady v Linuxu?

grep -l string2 `grep -l string1 /path/*`

což je stejné jako

grep -l string2 $(grep -l string1 /path/*)

Edit:zde je důvod grep string1 /path/* | grep string2 nedělá to, co si myslím, že alwbtc chce.

$ cd /tmp
$ cat a
apples
oranges
bananas
$ cat b
apples
mangoes
lemons
$ cat c
mangoes
limes
pears
$ cd ~
$ grep apples /tmp/* | grep mangoes
$

Nebylo nalezeno nic, ale soubor b obsahuje oba řetězce.

Zde je to, co si myslím, že alwbtc chce

$ grep -l apples $(grep -l mangoes /tmp/*)
/tmp/b

První kanál grep do jiného:

grep "string1" /path/to/files/* | grep "string2"


Linux
  1. Jak používat příkaz Grep k vyhledání textu v souborech

  2. Jak najít více řetězců v souborech?

  3. Jak v Linuxu najdu všechny soubory obsahující konkrétní text?

  1. Jak najít nedávné nebo dnešní upravené soubory v Linuxu

  2. Jak spojit dva textové soubory v Linuxu

  3. Jak najít duplicitní soubory v Linuxu

  1. Příkaz Linux:Jak „najít“ pouze textové soubory?

  2. Jak najít textové soubory, které neobsahují text v Linuxu?

  3. Jak najít řádky obsahující řetězec v linuxu