Я использую ниже команды для файлов ранее, и она работает отлично, но теперь она генерировала ниже ошибки или предупреждения, что желаемый вывод является списком 82 имен, но этот код, дающий 88, я пытаюсь проанализировать выходной файл, 95% имен являются счетом к желаемому выводу, но остающийся немногими не. (Этот код должен в основном найти, что fileB [содержит только имена] в fileA [которые содержат имена и его идентификаторы]):
while read -r line; do sed -n "/$line/,/^C/p" fileA| sed '$d';done<fileB>fileC
sed: -e expression #1, char 16: extra characters after command
Необходимо выйти из любых специальных символов, прибывающих из строки чтения. Например, если $line содержит какие-либо символы как / \"{}... Ваше sed выражение разваливается.
См. это сообщение для некоторого волшебства выхода: https://unix.stackexchange.com/a/33005