actully that is another application requires my ascii file with
1.80byte pers line
2.with NO CRLF (as IEEE says :CRLF refers to a carriage-return character ('\r', octal 15, ASCII CR) followed by a line-feed character ('\n')
and I guess fold will create a line-feed charchater
actully that is another application requires my ascii file with
1.80byte pers line
2.with NO CRLF (as IEEE says :CRLF refers to a carriage-return character ('\r', octal 15, ASCII CR) followed by a line-feed character ('\n')
and I guess fold will create a line-feed charchater
any input
I think you are simply missing the point about having multiple 80 character lines and somehow making these individual lines without some kind of line break. Let's try this.
Process your file with 80 character lines using fold
Pad each line once folded
Use tr or sed to strip the line breaks out of the file
Example creating 20 character records:
Output using od:
Thanks, tmarikle. And don't trip over the terminology. Unix has a definition that a line is a sequence of ascii characters followed by a newline character. By that definition, what is requested is impossible. But the unix definition is not the only possible definition of "line". I would have used "record" but when someone else uses "line" I just go with the flow. In C it is very easy to read 80 bytes at a time:
iret = read(fd, buffer, 80);
is all it takes. The 80 bytes you get from the first read represent the first record or first line. Then you issue the system call a second time to get another 80 bytes. It is not really hard to keep the first 80 bytes from getting mixed up with the second 80 bytes.
OK, tmarikle has provided a solution, but I have a few questions.
The output through 'od' looks fine. But the OP wants to write to a file. If you write this output to a file, you get a single line with no newline char at the end (this will happen no matter how big the file is). If you run the 'wc -l' command on that file, you are going to get the output as 0 (because the wc command will look for the \n char to count the number of lines).
Then as Perderabo has said, the read(2) or fread(3), fgets(3) calls will allow you to read the file in a C program. But how do you do this in a shell script?
I expanded the input to tmarikle's script by adding a couple more lines.
The file created by the above process, and the file created by this:
are almost the same. There is no padding for the second file.
So the OP could simply create a file by stripping all newline characters from the file. The application/program that reads the file is going to have to do this 80 bytes at a time, that's all.
In ksh, "print -n" will suppress the newline. Combine that with the \ sequence for using octal values and ksh can write any binary data using only built-in commands. But to read binary data, the way I know is to parse the output from od.
say that i have strings that end in "text"
foo.9.text, bar.10.text, baz.11.text
and i want a C function to chop off the last four characters and replace each string with a '\0'; obviously with error-checking. Any ideas?
TIA! (7 Replies)
is there a better way to do this:
head -c 10000k /var/dump.log | head -c 6000k
unfortunately, the "-c" option is not available on sun solaris. so i'm looking at "dd". but i dont know how to use it to achieve the same exact goal as the above head command.
this needs to work on both solaris... (5 Replies)
hello,
suppose, entered input is of 1-40 bytes, i need it to be converted to 40 bytes exactly.
example: if i have entered my name anywhere between 1-40 i want it to be stored with 40 bytes exactly.
enter your name:
donald duck (this is of 11 bytes)
expected is as below - display 11... (3 Replies)
Hello guys. I really hope someone will help me with this one..
So, I have to write this script who:
- creates a file home/student/vmdisk of 10 mb
- formats that file to ext3
- mounts that partition to /mnt/partition
- creates a file /mnt/partition/data. In this file, there will... (1 Reply)
Guys,
I want to get the high CPU utilization from top.
I am using below code :
top -d2 >> /home/dba_monitoring/host_top_output.txt
echo "Script started `date`" > $runlog
usage=`grep "^ *$1" /home/dba_monitoring/host_top_output.txt | awk '{print $12}' | sed 's/%//'`
And getting below... (7 Replies)
Hi,
If I want to copy a 1024 byte data stream in to the target location in 3-bytes chunk, I guess I can use the following script.
dd bs=1024 count=3 if=/src of=/dest
But, I would like to know, how to do it via a C program. I have tried this with memcpy(), that did not help. (3 Replies)
While running script I am getting an error like
Few lines in data are not being processed.
After googling it I came to know that adding such line would give some memory to it
ini_set("memory_limit","64M");
my input file size is 1 GB.
Is that memory limit is based on RAM we have on... (1 Reply)
Hi Guyz,
I need to capture first N Bytes from the first line of my file.
Eg. If i have following data in File1
414d51204541495052475731202020204a910846230e420c Hello 3621363663212 Help Required
Then, i want the value of first 48 Bytes to be stored in a variable.
That is, variable... (5 Replies)
Hi All,
I want to find zero byte files in the given folder for the given day.
I know we can use find . -size 0 -mtime 0
But is there an option for file creation.?
ls -lart | grep ' 0 Apr 24' will also work.
Also is there any alternative using awk ?
I want to know how to use awk in... (1 Reply)
Hi all,
Does anybody know or guide me on how to remove the first N bytes and the last N bytes from a binary file? Is there any AWK or SED or any command that I can use to achieve this?
Your help is greatly appreciated!!
Best Regards,
Naveen. (1 Reply)