Как я могу извлечь в Linux строку, содержащуюся в файлах, связав ее с именем файла, который ее содержит - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть набор файлов в каталоге:

file1.jdl
file2.jdl
...
filen.jdl

каждый файл может содержать такую ​​строку, например, file1.jdl содержит

runexe EXE1 $str1 str2 ...
...other stuff
runexe FILE_EXE2 abc ... ...
...other stuff

Как извлечь, используя скрипт, список, содержащий пару таких данных, без пути к файлу и без других строк, которые могут присутствовать после первой строки рядом с runexe?

file1.jdl EXE1 
file1.jdl FILE_EXE2
...
filen.jdl ...

1 Ответ

1 голос
/ 07 апреля 2020

Вы можете l oop просмотреть файлы.

#!/usr/bin/env bash

cd /path/to/file/ || exit

for file in *.jdl; do
  awk '/EXE/{print FILENAME, $0}' "$file"
done

Это было бы хорошо, если вам не нужно выполнять рекурсивный поиск, в противном случае вам нужно использовать find или параметр оболочки globstar

...