Проблема могла возникнуть только из-за "files", поскольку сценарий @Kusalananda отлично работает, когда для его заполнения используется "find".
Оказывается, в этой строке может быть CR-LF вместо LF (инструмент, который я использовал, был портом из программы Windows C ++).
Удаление CR в переменной решило проблему. Чтобы удалить, я использовал следующую строку перед циклом for
files=${files//[$'\t\r\n']}
Попробуйте это
awk '
BEGIN{OFS = "\t"}
/Schedule Name:/{s = $NF}
/Active:/{a = $2}
/:|^$/&&!/LC\//{next}
a == "yes"{print $NF, s}
' file
Или sed
sed '
/Schedule Name:/! d
s/.*:\s\+//
:1
N
/Active:/! b1
/yes/! d
:2
$! N
/Include:/d
/LC\//!{/:\|^$/b2;}
s/\s*\n.*\s\(\S\+\)\s*/\n\1/
s/\(.*\)\n\(.*\)/\2\t\1/p
s/.*\t//
t2
' file
sed версия 2:
sed -n '
/Schedule Name:/! d
s/.*:\s\+//
h
:1
n
/Active:\s*no/d
/LC\//!b1
:2
s/.*\s\(\S*\)\s*/\1/
G
s/\n/\t/p
n
/^\s*$\|Include:/! b2
' file
awk '/Schedule/{A="";S=$NF;next}/Active/{A=$NF;next}/Customer/&&A=="yes"{print $NF,S}' billing