#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    5
    Rep Power
    0

    Need your help with Reading/Editing of EBCDIC files at UNIX


    Hi Folks,

    I need your help with Reading/Editing of EBCDIC files at UNIX. "dd" is not helping much so "iconv" too (as my file is packed decimal type). we will not be able to get access of powerexchange or mainframe.
    I need atleast 100 records from each file.(if all is possible it would be awesome )

    Thanks,
    Ekta
  2. #2
  3. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jul 2013
    Posts
    19
    Rep Power
    0
    Try vim?
  4. #3
  5. No Profile Picture
    Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Mar 2006
    Posts
    2,394
    Rep Power
    1688
    The obvious question is why? You imply the files originate on a mainframe, which them being EBCDIC would tend to confirm. Thus they must be being transferred in some fashion. I'd be more inclined in looking at the transfer mechanism doing the EBCDIC->ASCII translation for you. It's been a while but I know the IBM ftp was capable of doing this.
    The moon on the one hand, the dawn on the other:
    The moon is my sister, the dawn is my brother.
    The moon on my left and the dawn on my right.
    My brother, good morning: my sister, good night.
    -- Hilaire Belloc
  6. #4
  7. Contributed User
    Devshed Specialist (4000 - 4499 posts)

    Join Date
    Jun 2005
    Posts
    4,363
    Rep Power
    1870
    > Reading/Editing of EBCDIC files at UNIX.
    > as my file is packed decimal type
    One of these statements would seem to be false.

    EBCDIC is an encoding for printable text.
    Packed Decimal is an encoding for decimal numbers.

    If your file really is packed decimal, then perhaps the only issue is that of endianess

    It would go a long way to clearing things up if you could post (using a hex dump program of your choice) some records of your files, along with what should be encoded.

    Eg.
    Code:
    $ od -Ax -t x1z foo5x5-24.bmp | head
    000000 42 4d 86 00 00 00 00 00 00 00 36 00 00 00 28 00  >BM........6...(.<
    000010 00 00 05 00 00 00 05 00 00 00 01 00 18 00 00 00  >................<
    000020 00 00 50 00 00 00 13 0b 00 00 13 0b 00 00 00 00  >..P.............<
    000030 00 00 00 00 00 00 33 33 33 36 36 36 39 39 39 3c  >......333666999<<
    000040 3c 3c 3f 3f 3f 00 63 63 63 66 66 66 69 69 69 6c  ><<???.cccfffiiil<
    000050 6c 6c 6f 6f 6f 00 93 93 93 96 96 96 99 99 99 9c  >llooo...........<
    000060 9c 9c 9f 9f 9f 00 c3 c3 c3 c6 c6 c6 c9 c9 c9 cc  >................<
    000070 cc cc cf cf cf 00 f3 f3 f3 f6 f6 f6 f9 f9 f9 fc  >................<
    000080 fc fc ff ff ff 00                                >......<
    000086
    Where (for example), bytes 18 to 21 are the width of the bitmap, as a 32-bit little-endian integer.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper
  8. #5
  9. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    5
    Rep Power
    0

    Smile


    Originally Posted by SimonJM
    The obvious question is why? You imply the files originate on a mainframe, which them being EBCDIC would tend to confirm. Thus they must be being transferred in some fashion. I'd be more inclined in looking at the transfer mechanism doing the EBCDIC->ASCII translation for you. It's been a while but I know the IBM ftp was capable of doing this.
    being a tester I need to validate the data which is loaded into tables from these files...so i need to fetch some records from EBCDIC file into some readable format.. also ,i do not have access to mainframe / power exchange to convert them..dd and iconv is not helping much.. and also i work on citrix so its difficult to access java/c through it due to access restrictions...could you pls let me know if i can use ibm ftp in these situations?

    your help would be highly appreciated.

    ~ekta
  10. #6
  11. No Profile Picture
    Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Mar 2006
    Posts
    2,394
    Rep Power
    1688
    It comes down to how you are getting the file - presumably it does not 'magically appear' on your desktop. If it does originate on a mainframe then the method used to copy it from the mainframe needs to be looked at. I know ftp is insecure, but if it's an internal network it might be permitted.

    The *conv family of commands do not seem to 'know about' EBCDIC which is a bit sad.

    I'm seeing an old colleague for a drink this evening and he is pretty much a mainframe guru, so if I remember I'll ask him if he can think of anything.
    The moon on the one hand, the dawn on the other:
    The moon is my sister, the dawn is my brother.
    The moon on my left and the dawn on my right.
    My brother, good morning: my sister, good night.
    -- Hilaire Belloc
  12. #7
  13. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    5
    Rep Power
    0
    Originally Posted by SimonJM
    It comes down to how you are getting the file - presumably it does not 'magically appear' on your desktop. If it does originate on a mainframe then the method used to copy it from the mainframe needs to be looked at. I know ftp is insecure, but if it's an internal network it might be permitted.

    The *conv family of commands do not seem to 'know about' EBCDIC which is a bit sad.

    I'm seeing an old colleague for a drink this evening and he is pretty much a mainframe guru, so if I remember I'll ask him if he can think of anything.
    Agree.. its not a magic...rather client places the files on unix server from mainframe (where files get generated) so thats obvious they wont give us access as they might fear about tempering of files... so only way is to do it through unix.. if you could help it would be grt..
  14. #8
  15. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    5
    Rep Power
    0
    Originally Posted by salem
    > Reading/Editing of EBCDIC files at UNIX.
    > as my file is packed decimal type
    One of these statements would seem to be false.

    EBCDIC is an encoding for printable text.
    Packed Decimal is an encoding for decimal numbers.

    If your file really is packed decimal, then perhaps the only issue is that of endianess

    It would go a long way to clearing things up if you could post (using a hex dump program of your choice) some records of your files, along with what should be encoded.

    Eg.
    Code:
    $ od -Ax -t x1z foo5x5-24.bmp | head
    000000 42 4d 86 00 00 00 00 00 00 00 36 00 00 00 28 00  >BM........6...(.<
    000010 00 00 05 00 00 00 05 00 00 00 01 00 18 00 00 00  >................<
    000020 00 00 50 00 00 00 13 0b 00 00 13 0b 00 00 00 00  >..P.............<
    000030 00 00 00 00 00 00 33 33 33 36 36 36 39 39 39 3c  >......333666999<<
    000040 3c 3c 3f 3f 3f 00 63 63 63 66 66 66 69 69 69 6c  ><<???.cccfffiiil<
    000050 6c 6c 6f 6f 6f 00 93 93 93 96 96 96 99 99 99 9c  >llooo...........<
    000060 9c 9c 9f 9f 9f 00 c3 c3 c3 c6 c6 c6 c9 c9 c9 cc  >................<
    000070 cc cc cf cf cf 00 f3 f3 f3 f6 f6 f6 f9 f9 f9 fc  >................<
    000080 fc fc ff ff ff 00                                >......<
    000086
    Where (for example), bytes 18 to 21 are the width of the bitmap, as a 32-bit little-endian integer.
    here are few records from the file :

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@[@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@^Z[@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@`@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@^Z@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@^Y&<#^YC
    @@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@2^A@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@[@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@^Y j"^YC
    @@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^Z [@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @M[@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^H0[@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^ZK[@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^Z[@@@@@@@@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    ~Ekta
  16. #9
  17. Contributing User
    Devshed Novice (500 - 999 posts)

    Join Date
    Sep 2006
    Posts
    834
    Rep Power
    387
    Originally Posted by ektubbe
    Hi Folks,

    I need your help with Reading/Editing of EBCDIC files at UNIX. "dd" is not helping much so "iconv" too (as my file is packed decimal type). we will not be able to get access of powerexchange or mainframe.
    I need atleast 100 records from each file.(if all is possible it would be awesome )

    Thanks,
    Ekta
    Because of the "packed decimal" fields, you will need to do it in two stages and know the record format (location and length) of these packed fields:

    1) Select the 100 records you want to test and create a file using iconv. With this file you validate the text fields.

    2) Using the same subset from 1 without conversion, you validate the packed decimal fields using hex converter.

    Good luck!
  18. #10
  19. Contributed User
    Devshed Specialist (4000 - 4499 posts)

    Join Date
    Jun 2005
    Posts
    4,363
    Rep Power
    1870
    I wanted to see a hex dump, not a copy/paste of the raw data.

    How are we supposed to accurately recreate the file, when your data has been munged by HTML formatting?
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper
  20. #11
  21. No Profile Picture
    Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Mar 2006
    Posts
    2,394
    Rep Power
    1688
    You may be able to ask your clients to do something for you. Spoke to my old work colleague and he asked about using iconv. It may be that on the mainframe (if a 'more recent' OpSys) the client can run Linux and use iconv which, being an IBM flavour DOES and can understand EBCDIC, so they could do the conversion of the text parts for you.
    If the file does contain packed decimal (COMP-3, etc.) that's not going to be fun any way you look at it, and it may be better if the client could produce a 'vanilla' version with the packed decimals being output as plain numbers instead.
    The moon on the one hand, the dawn on the other:
    The moon is my sister, the dawn is my brother.
    The moon on my left and the dawn on my right.
    My brother, good morning: my sister, good night.
    -- Hilaire Belloc

IMN logo majestic logo threadwatch logo seochat tools logo