33 lines
536 B
Awk
33 lines
536 B
Awk
BEGIN { split(COMPATDIRS, dirs); n = 1; last_prefix = "" }
|
|
/^#/ { print; }
|
|
{
|
|
if (NF > 0) {
|
|
pos = index($0, S);
|
|
if (pos == 0) {
|
|
print;
|
|
next;
|
|
}
|
|
prefix = substr($0, 1, pos)
|
|
if (prefix != last_prefix) {
|
|
for (d in dirs) {
|
|
for (f = 1; f < n; f++) {
|
|
x=files[f]; sub(S, S "/" dirs[d], x);
|
|
print x;
|
|
}
|
|
}
|
|
delete files;
|
|
n = 1;
|
|
last_prefix = prefix;
|
|
}
|
|
files[n++] = $0;
|
|
}
|
|
next
|
|
}
|
|
END {
|
|
for (d in dirs) {
|
|
for (f = 1; f < n; f++) {
|
|
x=files[f]; sub(S, S "/" dirs[d], x); print x;
|
|
}
|
|
}
|
|
}
|