http://www.perlmonks.org?node_id=1003775


in reply to Re: Get record separator of a file
in thread Get record separator of a file

You could use the unix file command to determine the file type and then you'll know what you need to do for the file types you're handling.

file(1) just guesses, based on some magic constants, and it often guesses wrong.

Also file will try to guess the separator for text files.

No. It detects line endings, but not record separators for CSV files:

/tmp>echo "foo;bar;baz" > testme /tmp>echo "1;2;3" >> testme /tmp>cat testme foo;bar;baz 1;2;3 /tmp>file testme testme: ASCII text /tmp>
I think there's a cpan module for this but I've never used it -- does anyone know anything about it?

File::Type, File::MMagic, both share the guessing problem.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Replies are listed 'Best First'.
Re^3: Get record separator of a file
by Lotus1 (Vicar) on Nov 14, 2012 at 13:48 UTC

    No. It detects line endings, but not record separators for CSV files:

    /tmp>echo "foo;bar;baz" > testme /tmp>echo "1;2;3" >> testme

    You seem to be confusing record separators and field separators. The line ending is the record separator and the ';' is the field separator.

      You seem to be confusing record separators and field separators.

      Yes, unfortunately I did.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)