Not beautiful, but gets the job done:
while (<DATA>) {
if (/^FILE/ && split(/[\s\\]+/) == 5) {
my ($num,$trail) = <DATA> =~ m/^\s*(\d+)\s*(.*)$/s;
s/\s*(?=\\\s*$)/ $num /s;
print; print $trail;
} else {
print;
}
}
__DATA__
FILE TEXT VAL 9999.999 08-jul-2014 \
270 3E4497B6B8482ADED734 HDNDFLHWLEJHFL LKSNFLKN \
WKENFLWHFELHN UIEKEFJBKJFN
FILE TEXT2 VAL 9999.999 16-may-2014 60 \
8EC4B7367989D54F6D6C HSHFGFLALKHF KJAHEFKHAH\
YRNBFLJNELFN LQJFLKJWEF LKJFLKWJF
Prints:
FILE TEXT VAL 9999.999 08-jul-2014 270 \
3E4497B6B8482ADED734 HDNDFLHWLEJHFL LKSNFLKN \
WKENFLWHFELHN UIEKEFJBKJFN
FILE TEXT2 VAL 9999.999 16-may-2014 60 \
8EC4B7367989D54F6D6C HSHFGFLALKHF KJAHEFKHAH\
YRNBFLJNELFN LQJFLKJWEF LKJFLKWJF