07-21-2013
Since you sent me private mail asking me to help you on this again, I take it that you ignored my previous messages in this thread. The archive files produced by awk contain lots of NULL bytes; so by definition tar archive files are binary, not text, files. The shell and awk utilities are built to work with text files; not binary files, so there is no way to do what you're trying to do with a standard awk. (Some implementations may provide extensions to awk enabling it to work on binary files, but I do not have access to any such implementation. You might also be able to write a perl program to do this, but I am not fluent enough in perl to help you try this.)
It would be easy to extract the files from the archive and walk through the regular files in the extracted file hierarchy to get what you want. But, you say you don't have the room to do that.
The output format produced by tar -t and tar -tv is not standardized (and varies from implementation to implementation). It may be possible for you to use tar -t or tar -tv to get a list of regular files stored in the archive and then use tar -xO pathname in a loop with pathname set to a different regular file in the archive each time through the loop so you can feed the contents of that file through your awk script without saving a copy of the file on disk.
That will require reading the archive n+1 times if there are n regular files in the archive and even this only works if all of the regular files in the archive are text files. I encourage you to play with tar to see if you can make this work. (On some implementations, tar -tf archive will list directories in the archive with a trailing slash on the name and other files without a trailing slash. If the implementation of tar on your system does this; you can use the trailing slash to determine whether to skip that file or to extract it and feed it to your awk script.)
This User Gave Thanks to Don Cragun For This Post:
10 More Discussions You Might Find Interesting
1. Windows & DOS: Issues & Discussions
Attached are views of the components of a dummy Access database. The database represents an example of the problem that has reared its ugly head.
The query example is a simple "Selection" query, which, after getting it to work, will become an "Append" query. The selected data will be appended... (1 Reply)
Discussion started by: hipockets
1 Replies
2. Shell Programming and Scripting
Hi all!
A bit of background: I am trying to create a script that formats SQL statements. I have gotten so far as to add new lines based on certain match criteria like commas, keywords etc. In the process, I end up adding newlines where I don't want.
For example: substr(colName, 1, 10)... (3 Replies)
Discussion started by: jayarkay
3 Replies
3. Shell Programming and Scripting
Hi,
I have code which is like this
<TABLE name="UsageDetail_24>
<ROW>
<Date24><!]></Date24>
<Time24><!]></Time24>
<Destination24><!]></Destination24>
<Rate24><!]></Rate24>
<Duration24><!]></Duration24>
<Cost24><!]></Cost24>
<Allowance24><!]></Allowance24>
</ROW>
<ROW>... (3 Replies)
Discussion started by: legolad
3 Replies
4. Shell Programming and Scripting
I have a business requirement in my project where I need to calculate the 12th working day of every month. Can any please tell me the solution to my problem.
Thanks in advance (7 Replies)
Discussion started by: ami_smart
7 Replies
5. Shell Programming and Scripting
Hey guys, maybe you can help me with this...
I want to read input.dat line by line, while doing a simple calculation between the second column value of the current line and the second column value of the next line (like a difference).
input is something like this:
0 3.945757
1 ... (1 Reply)
Discussion started by: origamisven
1 Replies
6. Shell Programming and Scripting
Hi all
I have a text file with the following format:
id col1 col2 col3 col4 col5 col6 col7 ...
row1 0 0 0 0 0 0 0
row2 0 0 0 0 0 0 0
row3 0 0 0 0 0 0.2 0
row4 0 0 0 0 0 0 0
row5 0 0 0 0 0 0 0
row6 0 0 0 0.1 0 0 0
row7 0 0 0 0 0 0 0
row8 0 0 0 0 0 0 0
row9 0 0 0 0 0 0 0
...
The file... (2 Replies)
Discussion started by: gautig
2 Replies
7. Shell Programming and Scripting
Hello,
Need help with following scenario.
A file contains following text:
{beginning of file}
New: This is a new record and it is not
on same line. Since I have lost touch with script
take this challenge and bring all this in one line.
New: Hello losttouch. You seem to be struggling... (4 Replies)
Discussion started by: losttouch
4 Replies
8. Shell Programming and Scripting
Hi All,
I have the following time stamp data in 2 columns
Date TimeStamp(also with milliseconds)
05/23/2012 08:30:11.250
05/23/2012 08:30:15.500
05/23/2012 08:31.15.500
.
.
etc
From this data I need the following output.
0.00( row1-row1 in seconds)
04.25( row2-row1 in... (5 Replies)
Discussion started by: ks_reddy
5 Replies
9. Shell Programming and Scripting
Hi
I need to select lines from a txt file, I have got a line starting with ZMIO:MSISDN= and after a few line I have another line starting with 'MOBILE STATION ISDN NUMBER' and another one starting with 'VLR-ADDRESS' I need to copy these three lines as three different columns in a separate... (3 Replies)
Discussion started by: Tlcm sam
3 Replies
10. Shell Programming and Scripting
Hi All,
I have following input file. I wish to retain those lines which match multiple search criteria. The search criteria is stored in a variable seperated from each other by comma(,).
SEARCH_CRITERIA = "REJECT, DUPLICATE"
Input File:
ERROR,MYFILE_20130214_11387,9,37.75... (3 Replies)
Discussion started by: angshuman
3 Replies
LEARN ABOUT CENTOS
tar_append_eof
tar_append_file(3) C Library Calls tar_append_file(3)
NAME
tar_append_file, tar_append_eof, tar_append_regfile - append data to tar archives
SYNOPSIS
#include <libtar.h>
int tar_append_file(TAR *t, char *realname, char *savename);
int tar_append_regfile(TAR *t, char *realname);
int tar_append_eof(TAR *t);
VERSION
This man page documents version 1.2 of libtar.
DESCRIPTION
The tar_append_file() function creates a tar file header block describing the file named by the realname argument, but with the encoded
filename of savename. It then sets the current header associated with the TAR handle t to the newly created header block, and writes this
block to the tar archive associated with t. If the file named by realname is a regular file (and is not encoded as a hard link),
tar_append_file() will call tar_append_regfile() to append the contents of the file.
The tar_append_regfile() function appends the contents of a regular file to the tar archive associated with t. Since this function is
called by tar_append_file(), it should only be necessary for applications that construct and write the tar file header on their own.
The tar_append_eof() function writes an EOF marker (two blocks of all zeros) to the tar file associated with t.
RETURN VALUES
On successful completion, these functions will return 0. On failure, they will return -1 and set errno to an appropriate value.
ERRORS
The tar_append_*() functions will fail if:
EINVAL Less than T_BLOCKSIZE bytes were written to the tar archive.
EINVAL Less than T_BLOCKSIZE bytes were read from the realname file.
They may also fail if any of the following functions fail: lstat(), malloc(), open(), read(), th_write(), or the write function for the
file type associated with the TAR handle t.
SEE ALSO
read(2), open(2), lstat(2), th_write(3)
University of Illinois Jan 2001 tar_append_file(3)