I'm using Windows, and I would like to extract certain columns from a text file using a Perl, Python, batch etc. one-liner.
On Unix I could do this:
cut -d " " -f 1-3 <my file>
How can I do this on Windows?
I'm using Windows, and I would like to extract certain columns from a text file using a Perl, Python, batch etc. one-liner.
On Unix I could do this:
cut -d " " -f 1-3 <my file>
How can I do this on Windows?
If you are dealing with a text file that has very long lines and you are only interested in the first 3 columns, then splitting a fixed number of times yourself will be a lot faster than using the
-a
option:perl -ne "@F = split /\s/, $_, 4; print qq(@F[0..2]\n)" file.txt
rather than
perl -ane "print qq(@F[0..2]\n)" file.txt
This is because the
-a
option will split on every whitespace in a line, which potentially can lead to a lot of extra splitting.That's rather simple Python script:
Here is a Perl one-liner to print the first 3 whitespace-delimited columns of a file. This can be run on Windows (or Unix). Refer to perlrun.
you can download GNU windows and use your normal cut/awk etc.. Or natively, you can use vbscript
save the above as mysplit.vbs and on command line
Or just simple batch
If you want a Python one liner
The easiest way to do it would be to install Cygwin and use the Unix
cut
command.