Вот особый вариант для всех остальных из нас, -пришедших к этому вопросу поздно:
ls -1 src/*.c | xargs -i sh -c "echo;gcc -fpreprocessed -dD -E {} 2>&1 | grep -wi -e one -e two -e three -n | sed 's:^:{}\::'" | cat -s
Список исходных файлов C
ls -1 src/*.c
передаются в xargs, который выполняет препроцессор в дочерней оболочке
gcc -fpreprocessed -dD -E {} 2>&1
, который впоследствии передается в нужную команду grep
grep -wi -e one -e two -e three -n
который затем передается в sed для префикса каждой строки с текущим именем файла
sed 's:^:{}\::'
Наконец,все повторяющиеся пустые строки сворачиваются в отдельные строки с помощью cat:
cat -s
Это работает в системе RHEL6, но я предполагаю, что это достаточно общее для других *nix-систем.
Возможно, возникла проблема с ISO-образом или созданный образ диска не является загрузочным. Вы должны использовать другой способ записи ISO на USB.
Попробуйте:
dd
программа (это деструктивная команда и стирает весь USB-накопитель с содержимым iso, так что будьте осторожны): sudo umount /dev/sd<?>
sudo dd bs=4M if=path/to/input.iso of=/dev/sd<?> conv=fdatasync status=progress
где input.iso
— входной файл, а /dev/sd<?>
— USB-устройство, на которое вы записываете (запустите lsblk
, чтобы увидеть все диски, чтобы узнать, что <?>
для вашего USB ).
Этот метод работает быстро и никогда меня не подводил.