Получайте результаты grep построчно и извлекайте по одному слову из каждой строки - PullRequest
0 голосов
/ 12 июня 2018

Я нахожусь в Linux, и мне нужно:

  1. Найти все .cpp файлы во всех подкаталогах / source

  2. Извлечьимя файла, содержащегося во всех инструкциях include по одному, т.е. из #include "filename.h" Мне нужно извлечь filename.h

  3. Найти для каждого filename.h во всех подкаталогах и извлечь его путь

  4. Вставьте путь в комментарий в конце соответствующего оператора включения в каждом .cpp

На данный момент мне только что удалось найти все операторы включения сКоманда grep, однако мне нужно читать их скорее построчно, а также извлечь filename.h из этой строки и указать местоположение файла в конце той же строки.Нужно ли использовать sed или лучше сохранить результат grep в переменной и просмотреть его?Спасибо.

Фрагмент кода, который позволяет мне распечатать все включенные утверждения:

urdir=`pwd`
for f in `find $curdir/source/ -type f -a -name *.cpp`
do 
chmod +rwx $f
grep -E -s '^[#][include].*["|<].*["|>]$' $f 
done
...