В папке много текстовых файлов.
Я хочу узнать, какие файлы содержат это упоминание о другом имени файла в папке.
пример: упоминается ли имя файла file1 в другом файле в folder1?
folder1
├── folder1.1/
│ ├── file1
│ ├── file2
└── folder1.2/
├── file3
└── folder1.2.1/
└── file4
решение1
Используйте find
with 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