Найти имя файла в содержимом другого файла

Найти имя файла в содержимом другого файла

В папке много текстовых файлов.

Я хочу узнать, какие файлы содержат это упоминание о другом имени файла в папке.

пример: упоминается ли имя файла file1 в другом файле в folder1?

folder1
├── folder1.1/
│   ├── file1
│   ├── file2
└── folder1.2/
    ├── file3
    └── folder1.2.1/
        └── file4

решение1

Используйте findwith basenameдля получения имен файлов, а затем передайте их в grep в качестве шаблонов с помощью -f -:

find . -type f -exec basename -a -- {} + | grep -Ff - -R .

Пример:

$ tree
.
├── folder2
│   ├── f1
│   ├── folder2a
│   └── folder2b
│       └── f3
└── folder3
    ├── folder3a
    │   └── f2
    └── folder3b

6 directories, 3 files

$ find . -type f -exec basename -a -- {} + | grep -Ff- -R .
./folder2/folder2b/f3:f2
./folder3/folder3a/f2:f1

Связанный контент