I have the following file that contains 2 columns :
A:B:IP:80 apples C:D:IP2:82 oranges E:F:IP3:84 grapes
How is possible to split the file in 2 other files, each column in a file like this:
File1
A:B:IP:80 C:D:IP2:82 E:F:IP3:84
File2
apples oranges grapes
Advertisement
Answer
Perl 1-liner using (abusing) the fact that print
goes to STDOUT
, i.e. file descriptor 1
, and warn
goes to STDERR
, i.e. file descriptor 2
:
# perl -n means loop over the lines of input automatically # perl -e means execute the following code # chomp means remove the trailing newline from the expression perl -ne 'chomp(my @cols = split /s+/); # Split each line on whitespace print $cols[0] . "n"; warn $cols[1] . "n"' <input 1>col1 2>col2
You could, of course, just use cut -b
with the appropriate columns, but then you would need to read the file twice.