Hello, I have a bash script in which a variable is set to one or more lines of text. What I want is to remove any lines up to and including a blank line (or alternatively to echo all the lines after the last blank line). There may be zero or more blank lines, and the blank lines need not be consecutive. If there is no blank line, then all the lines should be shown. If the last line is blank, then nothing should be shown. So for example the variable may contain: ============ (the '=' are not part of the variable) abc def hijk xyz ============ So in this case what is wanted is: ============ hijk xyz ============ to be shown. I tried something like: echo "$XX" | sed -e '/./,/^$/d' but this didn't display anything. (Where XX is the variable.) I also tried using a 'for' loop but again this displayed nothing: opt="" IFS=$'\n' for n in $XX; do test -z "$n" && opt="" || opt="$opt $n"; done (Echoing $opt after this shows that it contains nothing.) I'm not sure why but even using a for loop just to show it had seen a blank line didn't work either (using something like 'test -z "$n" && echo found'). My understanding was that by setting IFS to a newline, then the 'for' loop should see the blank line and just set '$n' to the null string. We should then be able to test on that. Ideally what I am looking for is a snappy one line 'sed' or 'awk' command to handle this :-) Unfortunately at the moment I seem to be getting nowhere though, even with the 'for' loop. Thanks, John. -- John Horne, Plymouth University, UK Tel: +44 (0)1752 587287 Fax: +44 (0)1752 587001 -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines Have a question? Ask away: http://ask.fedoraproject.org