Sponsored Content
Top Forums Shell Programming and Scripting Divide an EBCDIC files into multiple files based on value at 45-46 bytes Post 302775339 by Chubler_XL on Monday 4th of March 2013 03:57:51 PM
Old 03-04-2013
Not sure how many record types you have, this solution works if it's only a few just add more >(awk ...) args to the tee command

Code:
dd if=infile conv=ascii 2> /dev/null | tee >(
awk 'substr($0,44,2)=="12"' | dd of=employee.out conv=ebcdic 2> /dev/null ) >(
awk 'substr($0,44,2)=="15"' | dd of=customer.out conv=ebcdic 2> /dev/null ) |
awk 'substr($0,44,2)=="14"' | dd of=salary.out   conv=ebcdic 2> /dev/null


Last edited by Chubler_XL; 03-04-2013 at 05:03 PM..
This User Gave Thanks to Chubler_XL For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Comparing EBCDIC files

Hi Guys, I wish to compare two ebcdic files. diff utility manual says it only compares two text files line by line.. I doubt this will be good for ebcdic files. cmp utility does binary comparision but I do not find any thing in manual referring if it does support ebcdic file format. let... (2 Replies)
Discussion started by: RishiPahuja
2 Replies

2. Shell Programming and Scripting

how to divide single large log file into multiple files.

Can you please help me with writing script for following purpose. I have to divide single large web access log file into multiple log files based on dates inside the log file. For example: if data is logged in the access file for jan-10-08 , jan-11-08 , Jan-12-08 then make small log file... (1 Reply)
Discussion started by: kamleshm
1 Replies

3. Shell Programming and Scripting

awk 3 files to one based on multiple columns

Hi all, I have three files, one is a navigation file, one is a depth file and one is a file containing the measured field of gravity. The formats of the files are; navigation file: 2006 320 17 39 0 0 *nav 21.31542 -157.887 2006 320 17 39 10 0 *nav 21.31542 -157.887 2006 320 17 39 20 0... (2 Replies)
Discussion started by: andrealphus
2 Replies

4. UNIX for Dummies Questions & Answers

Joining files based on multiple keys

I need a script (perl or awk..anything is fine) to join 3 files based on three key columns. The no of non-key columns can vary in each file. The columns are delimited by semicolon. For example, File1 Dim1;Dim2;Dim3;Fact1;Fact2;Fact3;Fact4;Fact5 ---- data delimited by semicolon --- ... (1 Reply)
Discussion started by: Sebben
1 Replies

5. UNIX for Advanced & Expert Users

Create a file based on multiple files

Hey everyone. I am trying to figure out a way to create a file that will be renamed based off of one of multiple files. For example, if I have 3 files (cat.ctl, dog.ctl, and bird.ctl) that gets placed on to an ftp site I want to create a single file called new.cat.ctl, new.dog.ctl, etc for each... (3 Replies)
Discussion started by: coach5779
3 Replies

6. Shell Programming and Scripting

Divide large data files into smaller files

Hello everyone! I have 2 types of files in the following format: 1) *.fa >1234 ...some text... >2345 ...some text... >3456 ...some text... . . . . 2) *.info >1234 (7 Replies)
Discussion started by: ad23
7 Replies

7. Shell Programming and Scripting

want to concatenate multiple files based on the rest of ls -lrt

uadm@4132> ls -lrt -rw------- 1 uadm uadm 3811819 Jun 6 04:08 data_log-2010.05.30-10:04:08.txt -rw------- 1 uadm uadm 716246 Jun 13 01:38 data_log-2010.06.06-10:04:08.txt -rw------- 1 uadm uadm 996 Jun 13 04:00 data_log-2010.06.06-10:04:22.txt -rw------- 1 uadm uadm 7471 Jun 20 02:03... (5 Replies)
Discussion started by: mail2sant
5 Replies

8. Shell Programming and Scripting

Help with Archiving multiple files based on name and date

Dear Gurus, I am a novice in shell scripts. I have a requirement where I need to move files every day from Current Folder to Archive folder. Daily I will be receiving 5 files in the folder - /opt/data/feeds/. The feeds folder has two sub-folders - Current and Archive. For example the... (25 Replies)
Discussion started by: shankar1dada
25 Replies

9. UNIX for Dummies Questions & Answers

divide the file into multiple files based on the city name

Hi, I have a file abc.dat. It contains the fileds of empid, empname, empcity. each city contains 10 records. i want to create the city file and pass the same city records into the file. I don't know the city names. In unix using awk command how can we do? abc.dat: 1 john delhi 2... (2 Replies)
Discussion started by: raghukreddy.ab
2 Replies

10. UNIX for Advanced & Expert Users

Moving multiple files based on the pattern

I want to search for a particular file name patterns and move them to a specific folder, is it possible to do it with awk or sed? (1 Reply)
Discussion started by: rudoraj
1 Replies
dd(1)							      General Commands Manual							     dd(1)

Name
       dd - copy and convert data

Syntax
       dd [option = value...]

Description
       The  command copies an input file to an output with any requested conversions.  The command is especially suited to I/O on the raw physical
       devices because it allows reading and writing in arbitrary record sizes.

       After completion, reports the number of whole and partial input and output blocks.

       This utility supports EOT handling which allows the use of multiple media.  The utility prompts for the next volume when it encounters  the
       end of the current volume.

Options
       Where  sizes (n) are given for an option, the number may end with k for kilobytes (1024 bytes), b for blocks (512 bytes), or w for words (2
       bytes).	Also, two numbers may be separated by the character x to indicate a product.

       if=name		   Input file name.  The standard input is the default.

       of=name		   Output file name.  The standard output is the default.

       ibs=n		   Input block size, n bytes. The default is 512 bytes.  Some devices do not support greater than 65,535 bytes.

       obs=n		   Output block size, n bytes.	The default is 512 bytes.  Some devices do not support greater than 65,535 bytes.

       bs=n		   Set both input and output block size to n bytes, superseding ibs and obs.  Also, if bs is specified, the copy  is  more
			   efficient, since no blocking conversion is necessary.

       cbs=n		   Conversion buffer size, n bytes.  Use only if ascii, unblock, ebcdic, ibm, or block conversion is specified.  For ascii
			   and unblock, n characters are placed into the conversion buffer, any specified  character  mapping  is  done,  trailing
			   blanks are trimmed and new line added before sending the line to the output.  For ebcdic, ibm, or block, characters are
			   read into the conversion buffer, and blanks added to make an output record of size n bytes.

       skip=n		   Skip n input records before starting to copy.

       files=n		   Copy n input files before terminating.  This option is useful only when the input is a magnetic tape or similar device.

       seek=n		   Seek n records from beginning of output file before copying.

       rbuf=n		   Use n buffers for reading from those raw devices that support n-buffered I/O.  (See Section 4 to check whether  a  spe-
			   cific  device  supports  n-buffered	I/O.)	All n reads are started and each read must complete before the data can be
			   used.  This allows an n-buffered read-ahead on supported raw devices.

			   A default of eight read buffers are used if the read device supports n-buffered I/O and the write device does not.

			   The rbuf option cannot be used with the wbuf option.

       wbuf=n		   Use n buffers for writing from those raw devices that support n-buffered I/O.  (See Section 4 to check whether  a  spe-
			   cific  device  supports  n-buffered	I/O.)  Each write is started but not known to be complete until all n buffers have
			   been used.  (This allows an n-buffered write-behind on supported raw devices).

			   A default of eight write buffers are used if the write device supports n-buffered I/O.

			   The wbuf option cannot be used with the rbuf option.

       count=n		   Copy only n input records.

       conv=ascii	   Convert EBCDIC to ASCII.

       conv=ebcdic	   Convert ASCII to EBCDIC.

       conv=ibm 	   Slightly different map of ASCII to EBCDIC (see RESTRICTIONS).

       conv=block	   Convert variable length records to fixed length.

       conv=unblock	   Convert fixed length records to variable length.

       conv=lcase	   Map alphabetics to lower case.

       conv=ucase	   Map alphabetics to upper case.

       conv=swab	   Swap every pair of bytes.

       conv=noerror	   Do not stop processing on an error.

       conv=sync	   Pad every input record to ibs.

       conv=nomulti	   Disable multiple tape volumes.

       conv=sparse	   Create a sparse output file.

       conv=... , ...	   Include several arguments for the conv option, separated by commas (see example below).

Examples
       The following example shows how to read an EBCDIC tape blocked ten 80-byte EBCDIC card images per record into the ASCII file x:
       dd if=/dev/rmt0h of=x ibs=800 cbs=80 conv=ascii,lcase

       Note the use of raw magtape.  As noted in the DESCRIPTION, the command is especially suited to I/O on the raw physical devices  because	it
       allows reading and writing in arbitrary record sizes.

Restrictions
       The ASCII/EBCDIC conversion tables are taken from the 256-character standard in the Communications of the ACM, (R)November, 1968.

       The ibm conversion corresponds to certain IBM print train conventions.

       One must specify ``conv=noerror,sync'' when copying raw disks with bad sectors to ensure that dd stays synchronized.
       On  SCSI  tape devices when reading a multi-volume tape set the command will exit normally upon hitting EOT on any volume rather than auto-
       matically unloading the volume and prompting for the next volume as is normal. The user should load the next volume and issue  the  command
       anew.

Diagnostics
       f+p records in(out): numbers of full and partial records read(written)

See Also
       cp(1), tr(1), nbuf(4)

																	     dd(1)
All times are GMT -4. The time now is 08:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy