find
+awk
раствор:
find./backup -type f -exec \
awk 'NR == 1{ if (/StockID.*SellPrice/) print FILENAME; exit }' {} \;
В случае, если порядок ключевых слов может быть другим -, замените шаблон /StockID.*SellPrice/
на /StockID/ && /SellPrice/
.
В случае большого количества файлов более эффективной альтернативой будет (обработка сразу нескольких файлов;общее количество вызовов команды будет намного меньше, чем количество совпадающих файлов):
find./backup -type f -exec \
awk 'FNR == 1 && /StockID.*SellPrice/{ print FILENAME }{ nextfile }' {} +
Найти родительский процесс для данного процесса:
ps -cp <process_id> -o ppid=""
Вы можете использовать pstree
для просмотра всего дерева процессов.
Если вы хотите использовать /proc
, файл /proc/<PID>/task/<PID>/status
содержит информацию о процессе. Запись PPid
— это то, что вы ищете -идентификатор родительского процесса.
Чтобы найти родителя процесса, используя только /proc
, найдите PPid
в статусе соответствующей задачи:
grep PPid /proc/${pid}/task/${pid}/status
(замена двух экземпляров ${pid}
дочерним pid ).