![]() |
|
|||||||
| Guides All Guides and HOWTO's. |
![]() |
|
|
Thread Tools | Display Modes |
|
|||
|
Recently I had to convert several text documents to XML.
To make sure that there were no empty lines with just spaces and/or tabs, I wrote the following small Perl script called 'xlblanks'. Code:
#!/usr/bin/perl
use warnings;
use strict;
use diagnostics;
# --- delete spaces and tabs from otherwise empty lines
my $total = 0;
my $line_nr;
my @nrs;
while (<>) {
++$line_nr;
if (
s/
^ # at begin of line
[\t\ ]+ # one or more tabs or blanks
$ # followed by END OF LINE
//x # by nothing
) {
++$total;
push @nrs, $line_nr;
}
print;
}
print STDERR "\n$0: Number of lines found with only tabs or blanks: $total\n";
$, = '-' ;
print STDERR "$0: The line numbers: ", @nrs , "\n\n";
Code:
FreeBSD DragonFlyBSD NetBSD OpenBSD Code:
$ xlblanks blanklines.txt FreeBSD DragonFlyBSD NetBSD OpenBSD ./xlblanks: Number of lines found with only tabs or blanks: 3 ./xlblanks: The line numbers: -3-5-7- Code:
$ cat -net blanklines.txt
1 $
2 FreeBSD$
3 $
4 DragonFlyBSD$
5 ^I $
6 NetBSD $
7 ^I$
8 OpenBSD$
9 $
10 $
Code:
$ ./xlblanks blanklines.txt >clean.txt
./xlblanks: Number of lines found with only tabs or blanks: 3
./xlblanks: The line numbers: -3-5-7-
$ cat -net clean.txt
1 $
2 FreeBSD$
3 $
4 DragonFlyBSD$
5 $
6 NetBSD $
7 $
8 OpenBSD$
9 $
10 $
Code:
$ ./xlblanks blanklines.txt >clean.txt 2> culprits.txt $ cat culprits.txt ./xlblanks: Number of lines found with only tabs or blanks: 3 ./xlblanks: The line numbers: -3-5-7- The original master files are being maintained in MS Word format , so knowing the line numbers made it easy to eliminate those irritating, useless blanks and tabs. An equivalent 'sed' script, without the lines reporting stuff: Code:
$ sed -Ee 's/^[[:blank:]]+$//g' blanklines.txt | cat -net
1 $
2 FreeBSD$
3 $
4 DragonFlyBSD$
5 $
6 NetBSD $
7 $
8 OpenBSD$
9 $
10 $
__________________
You don't need to be a genius to debug a pf.conf firewall ruleset, you just need the guts to run tcpdump |
|
|||
|
Or this:
Code:
perl -pi -e 's/^\s+$/\n/g' blanklines.txt |
|
|||
|
Yet another, using the [:space:] POSIX character class:
Code:
sed 's/^[[:space:]]*$//g' file.in > file.out
__________________
My web site Last edited by Mike-Sanders; 7th January 2013 at 02:58 AM. Reason: fixed really bad typo... (palm/face) |
![]() |
| Tags |
| perl, sed, text formatting |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| deleting a file or directory | divadgnol67 | OpenBSD General | 7 | 1st April 2011 03:31 PM |
| Blank screen after installkernel | beaute | FreeBSD Installation and Upgrading | 1 | 3rd June 2010 10:54 AM |
| Deleting lines with certain letters/keywords. | bigb89 | Programming | 4 | 12th November 2008 10:59 PM |
| Putting Lines to Together. | bigb89 | Programming | 4 | 24th September 2008 03:59 AM |
| root password is blank | mfaridi | FreeBSD Security | 10 | 16th May 2008 10:19 PM |