Sponsored Content
Full Discussion: cat : ignore I/O error
Top Forums UNIX for Dummies Questions & Answers cat : ignore I/O error Post 302412005 by Corona688 on Saturday 10th of April 2010 05:01:28 PM
Old 04-10-2010
Of course it's possible given the source code. However:
  • it'd be a ridiculous amount of work
  • it could break things you didn't expect -- imagine your modified cat reading a file that gets truncated, and going into an endless loop when it tries to "read past" the "bad block"
  • It might need to work differently than the way you imagine it -- it wouldn't merely need to "skip past" bad blocks, it'd have to write empty blocks to match the blocks it skipped or else your output would be smaller than your input. which'd mean knowing a block size. which would mean either reading that from the disk or getting from the commandline somehow. etc. etc. etc.
  • cat is really not meant for dealing with block devices, while dd really is designed for them
  • There's already a perfectly good command that does precisely what you want the exact way you want to do it. dd's easy once you know it, and available almost anywhere.
Code:
dd if=/path/to/input of=/path/to/output conv=noerror,sync


Last edited by Corona688; 04-10-2010 at 06:08 PM..
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Difference between cat , cat > , cat >> and touch !!!

Hi Can anybody tell the difference between Difference between cat , cat > , cat >> and touch command in UNIX? Thanks (6 Replies)
Discussion started by: skyineyes
6 Replies

2. Shell Programming and Scripting

cat in the command line doesn't match cat in the script

Hello, So I sorted my file as I was supposed to: sort -n -r -k 2 -k 1 file1 | uniq > file2 and when I wrote > cat file2 in the command line, I got what I was expecting, but in the script itself ... sort -n -r -k 2 -k 1 averages | uniq > temp cat file2 It wrote a whole... (21 Replies)
Discussion started by: shira
21 Replies

3. Shell Programming and Scripting

Ignore error and get ls file count

I am trying to figure out how to run the below variable assignment in a shell script so that it will snuff the "no such file or directory" and just pass the count value. That way I can do a valid compare in the next step. num=`ls /appsrv/tmp/PrjRefData_20090428-*_in.xml | wc -l` ls:... (3 Replies)
Discussion started by: lynchmob
3 Replies

4. Shell Programming and Scripting

Error output of cat to /dev/null

Hello, I'm trying to send the error output of a 'cat' operation to /dev/null like this: cat /dirA/dirB/temp*.log > /dirA/dirB/final.log 2>/dev/null This works perfectly in a terminal, but not when placed in a script. If there are no files matching temp*.log the script outputs an error... (7 Replies)
Discussion started by: Nils88
7 Replies

5. Shell Programming and Scripting

cat command error

I use the "cat" command to cancaterate files into a new file. Sometimes the cat command failed because there were too many files in the directory for cancateration. I also tried to use the "ls" command to put the list of files into a text file and then cancaterate each file one by one by... (6 Replies)
Discussion started by: lena keung
6 Replies

6. Shell Programming and Scripting

Error : cat: 0652-050 Cannot open

After processing around 300 files , I am getting the below error.Please help me to resolve it cat: 0652-050 Cannot open /dir1/dir2/dir3/dir/abc.txt mv: 0653-401 Cannot rename /dir1/dir2/dir3/dir/abc.temp to /dir1/dir2/dir3/dir/abc.csv: . . . how to avoid it. because I am getting... (1 Reply)
Discussion started by: vsachan
1 Replies

7. Emergency UNIX and Linux Support

How to ignore Netout Error.?

Hi All , Am using unix KSH . I would like to clarify two doubts. Whenever am transfering the zero size file am getting the warning message netout. files will be transferred to target server or not? I have used the code as if then VAR="ftp.sh -c put ${FILE} ${FILE}... (2 Replies)
Discussion started by: Venkatesh1
2 Replies

8. Shell Programming and Scripting

How to ignore error in command in bash script?

Hello, i have bash script where im cycling some command for different lines in external file. example: while read domain;do nslookupout=$(nslookup -type=ns $domain) || true another commands done < filenamewithdomains i added: || true after the command in belief it will just skip... (6 Replies)
Discussion started by: postcd
6 Replies

9. Shell Programming and Scripting

Getting Error in with cat command

Hi All , Below is the script which I have written - export LOGDIR=/home/rmsbatch/testdata # TEMPDIR : Path where all non zero files need to be moved after search. export TEMPDIR=/home/rmsbatch/testdata/TEMP # RESULTFILE : Path of the Final File export... (3 Replies)
Discussion started by: LoneRanger
3 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 07:03 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy