10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I read a file (iplist.txt) ine-by-line in a loop which has the list of all the server hostnames.
With each hostname read; I do ssh and fire multiple commands to gather information about that systemas shown below.
#!/bin/bash
while IFS='' read -r line || ]; do
echo "Text read from file:... (3 Replies)
Discussion started by: mohtashims
3 Replies
2. Shell Programming and Scripting
Below is my code:
count=0
if
...
...
else
...
find * -prune -type d | sort -r -n | while read d; do
count=1
if ; then
echo "Count1:$count"
...
...
break 2;
fi
...
done
...
fi
echo "Count2:$count" (9 Replies)
Discussion started by: mohtashims
9 Replies
3. Shell Programming and Scripting
I have a loop like
while read i
do
echo "$i"
.
.
.
done < tms.txt
The tms.txt contians data like
2008-02-03 00:00:00
<space>00:00:00
.
.
.
2010-02-03 10:54:32 (2 Replies)
Discussion started by: machomaddy
2 Replies
4. Shell Programming and Scripting
Say you don't want to unpack the whole thing, just individual files or directories within a .tgz. How to do this? (1 Reply)
Discussion started by: stevensw
1 Replies
5. UNIX for Dummies Questions & Answers
Hi All,
Following is the program that i have written in cygwin. The redirection of the unfound $param1 to error.txt file doesnt work.Can any one help?
#!/usr/bin/sh
fname=$1
sed 's/ //g' "$fname" > fname1
while read i
do
echo $i > file1
#param1 is script name
... (1 Reply)
Discussion started by: janardhanamk
1 Replies
6. UNIX for Dummies Questions & Answers
Hi everyone.
I wanted to print numbers from 1 to 5 in reverse order. For this I used the following code:
#!/bin/bash
x=5
while
do
echo $x
x=`expr $x - 1`
echo ""
done
echo ""
Well but on compiling the above code, it gives the following error.
... (3 Replies)
Discussion started by: grc
3 Replies
7. Shell Programming and Scripting
i have about 30 .EAR files, every ear file have 1 .JAR file.
so i need to extract .EAR files then extract .JAR files, and one important thing is that every archive must bee extracted to separate folder.
i try with gzip, but when i extract 30 ear files i cant make separate folders.... (1 Reply)
Discussion started by: waso
1 Replies
8. Shell Programming and Scripting
I am unable to access the value set inside the loop from outside loop .
Thought of taking this to forum , I had seen other replies also , where a pipe takes the execution to another shell and mentioned thats the reason we do not get the variable outside loop . But I am getting an issue and I am... (1 Reply)
Discussion started by: Armaan_S
1 Replies
9. Red Hat
Hi all,
I want to unpack some files .Files and their sizes are:
1. Linux9i_Disk1.cpio -- 500m
2. Linux9i_Disk2.cpio--- 600m
3.Linux9i_Disk3.cpio---- 250m
I used cpio -idmv Linux9i_Disk1.cpio command to unpack the files. But Its taking more time to unpack the files.What could be the... (2 Replies)
Discussion started by: William1482
2 Replies
10. Shell Programming and Scripting
I have a while loop like this
cat ${filename} | while read fileline
do
...
done
I need to access a variable value $newfile inside this while loop
How will i do that?? (6 Replies)
Discussion started by: codeman007
6 Replies
Archive::Extract(3perl) Perl Programmers Reference Guide Archive::Extract(3perl)
NAME
Archive::Extract - A generic archive extracting mechanism
SYNOPSIS
use Archive::Extract;
### build an Archive::Extract object ###
my $ae = Archive::Extract->new( archive => 'foo.tgz' );
### extract to cwd() ###
my $ok = $ae->extract;
### extract to /tmp ###
my $ok = $ae->extract( to => '/tmp' );
### what if something went wrong?
my $ok = $ae->extract or die $ae->error;
### files from the archive ###
my $files = $ae->files;
### dir that was extracted to ###
my $outdir = $ae->extract_path;
### quick check methods ###
$ae->is_tar # is it a .tar file?
$ae->is_tgz # is it a .tar.gz or .tgz file?
$ae->is_gz; # is it a .gz file?
$ae->is_zip; # is it a .zip file?
$ae->is_bz2; # is it a .bz2 file?
$ae->is_tbz; # is it a .tar.bz2 or .tbz file?
$ae->is_lzma; # is it a .lzma file?
$ae->is_xz; # is it a .xz file?
$ae->is_txz; # is it a .tar.xz or .txz file?
### absolute path to the archive you provided ###
$ae->archive;
### commandline tools, if found ###
$ae->bin_tar # path to /bin/tar, if found
$ae->bin_gzip # path to /bin/gzip, if found
$ae->bin_unzip # path to /bin/unzip, if found
$ae->bin_bunzip2 # path to /bin/bunzip2 if found
$ae->bin_unlzma # path to /bin/unlzma if found
$ae->bin_unxz # path to /bin/unxz if found
DESCRIPTION
Archive::Extract is a generic archive extraction mechanism.
It allows you to extract any archive file of the type .tar, .tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma
without having to worry how it does so, or use different interfaces for each type by using either perl modules, or commandline tools on
your system.
See the "HOW IT WORKS" section further down for details.
METHODS
$ae = Archive::Extract->new(archive => '/path/to/archive',[type => TYPE])
Creates a new "Archive::Extract" object based on the archive file you passed it. Automatically determines the type of archive based on the
extension, but you can override that by explicitly providing the "type" argument.
Valid values for "type" are:
tar Standard tar files, as produced by, for example, "/bin/tar". Corresponds to a ".tar" suffix.
tgz Gzip compressed tar files, as produced by, for example "/bin/tar -z". Corresponds to a ".tgz" or ".tar.gz" suffix.
gz Gzip compressed file, as produced by, for example "/bin/gzip". Corresponds to a ".gz" suffix.
Z Lempel-Ziv compressed file, as produced by, for example "/bin/compress". Corresponds to a ".Z" suffix.
zip Zip compressed file, as produced by, for example "/bin/zip". Corresponds to a ".zip", ".jar" or ".par" suffix.
bz2 Bzip2 compressed file, as produced by, for example, "/bin/bzip2". Corresponds to a ".bz2" suffix.
tbz Bzip2 compressed tar file, as produced by, for example "/bin/tar -j". Corresponds to a ".tbz" or ".tar.bz2" suffix.
lzma
Lzma compressed file, as produced by "/bin/lzma". Corresponds to a ".lzma" suffix.
xz Xz compressed file, as produced by "/bin/xz". Corresponds to a ".xz" suffix.
txz Xz compressed tar file, as produced by, for example "/bin/tar -J". Corresponds to a ".txz" or ".tar.xz" suffix.
Returns a "Archive::Extract" object on success, or false on failure.
$ae->extract( [to => '/output/path'] )
Extracts the archive represented by the "Archive::Extract" object to the path of your choice as specified by the "to" argument. Defaults to
"cwd()".
Since ".gz" files never hold a directory, but only a single file; if the "to" argument is an existing directory, the file is extracted
there, with its ".gz" suffix stripped. If the "to" argument is not an existing directory, the "to" argument is understood to be a
filename, if the archive type is "gz". In the case that you did not specify a "to" argument, the output file will be the name of the
archive file, stripped from its ".gz" suffix, in the current working directory.
"extract" will try a pure perl solution first, and then fall back to commandline tools if they are available. See the "GLOBAL VARIABLES"
section below on how to alter this behaviour.
It will return true on success, and false on failure.
On success, it will also set the follow attributes in the object:
$ae->extract_path
This is the directory that the files where extracted to.
$ae->files
This is an array ref with the paths of all the files in the archive, relative to the "to" argument you specified. To get the full path
to an extracted file, you would use:
File::Spec->catfile( $to, $ae->files->[0] );
Note that all files from a tar archive will be in unix format, as per the tar specification.
ACCESSORS
$ae->error([BOOL])
Returns the last encountered error as string. Pass it a true value to get the "Carp::longmess()" output instead.
$ae->extract_path
This is the directory the archive got extracted to. See "extract()" for details.
$ae->files
This is an array ref holding all the paths from the archive. See "extract()" for details.
$ae->archive
This is the full path to the archive file represented by this "Archive::Extract" object.
$ae->type
This is the type of archive represented by this "Archive::Extract" object. See accessors below for an easier way to use this. See the
"new()" method for details.
$ae->types
Returns a list of all known "types" for "Archive::Extract"'s "new" method.
$ae->is_tgz
Returns true if the file is of type ".tar.gz". See the "new()" method for details.
$ae->is_tar
Returns true if the file is of type ".tar". See the "new()" method for details.
$ae->is_gz
Returns true if the file is of type ".gz". See the "new()" method for details.
$ae->is_Z
Returns true if the file is of type ".Z". See the "new()" method for details.
$ae->is_zip
Returns true if the file is of type ".zip". See the "new()" method for details.
$ae->is_lzma
Returns true if the file is of type ".lzma". See the "new()" method for details.
$ae->is_xz
Returns true if the file is of type ".xz". See the "new()" method for details.
$ae->bin_tar
Returns the full path to your tar binary, if found.
$ae->bin_gzip
Returns the full path to your gzip binary, if found
$ae->bin_unzip
Returns the full path to your unzip binary, if found
$ae->bin_unlzma
Returns the full path to your unlzma binary, if found
$ae->bin_unxz
Returns the full path to your unxz binary, if found
$bool = $ae->have_old_bunzip2
Older versions of "/bin/bunzip2", from before the "bunzip2 1.0" release, require all archive names to end in ".bz2" or it will not extract
them. This method checks if you have a recent version of "bunzip2" that allows any extension, or an older one that doesn't.
debug( MESSAGE )
This method outputs MESSAGE to the default filehandle if $DEBUG is true. It's a small method, but it's here if you'd like to subclass it so
you can so something else with any debugging output.
HOW IT WORKS
"Archive::Extract" tries first to determine what type of archive you are passing it, by inspecting its suffix. It does not do this by using
Mime magic, or something related. See "CAVEATS" below.
Once it has determined the file type, it knows which extraction methods it can use on the archive. It will try a perl solution first, then
fall back to a commandline tool if that fails. If that also fails, it will return false, indicating it was unable to extract the archive.
See the section on "GLOBAL VARIABLES" to see how to alter this order.
CAVEATS
File Extensions
"Archive::Extract" trusts on the extension of the archive to determine what type it is, and what extractor methods therefore can be used.
If your archives do not have any of the extensions as described in the "new()" method, you will have to specify the type explicitly, or
"Archive::Extract" will not be able to extract the archive for you.
Supporting Very Large Files
"Archive::Extract" can use either pure perl modules or command line programs under the hood. Some of the pure perl modules (like
"Archive::Tar" and Compress::unLZMA) take the entire contents of the archive into memory, which may not be feasible on your system.
Consider setting the global variable $Archive::Extract::PREFER_BIN to 1, which will prefer the use of command line programs and won't
consume so much memory.
See the "GLOBAL VARIABLES" section below for details.
Bunzip2 support of arbitrary extensions.
Older versions of "/bin/bunzip2" do not support arbitrary file extensions and insist on a ".bz2" suffix. Although we do our best to guard
against this, if you experience a bunzip2 error, it may be related to this. For details, please see the "have_old_bunzip2" method.
GLOBAL VARIABLES
$Archive::Extract::DEBUG
Set this variable to "true" to have all calls to command line tools be printed out, including all their output. This also enables
"Carp::longmess" errors, instead of the regular "carp" errors.
Good for tracking down why things don't work with your particular setup.
Defaults to "false".
$Archive::Extract::WARN
This variable controls whether errors encountered internally by "Archive::Extract" should be "carp"'d or not.
Set to false to silence warnings. Inspect the output of the "error()" method manually to see what went wrong.
Defaults to "true".
$Archive::Extract::PREFER_BIN
This variables controls whether "Archive::Extract" should prefer the use of perl modules, or commandline tools to extract archives.
Set to "true" to have "Archive::Extract" prefer commandline tools.
Defaults to "false".
TODO
/ CAVEATS
Mime magic support
Maybe this module should use something like "File::Type" to determine the type, rather than blindly trust the suffix.
Thread safety
Currently, "Archive::Extract" does a "chdir" to the extraction dir before extraction, and a "chdir" back again after. This is not
necessarily thread safe. See "rt.cpan.org" bug "#45671" for details.
BUG REPORTS
Please report bugs or other issues to <bug-archive-extract@rt.cpan.org<gt>.
AUTHOR
This module by Jos Boumans <kane@cpan.org>.
COPYRIGHT
This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.
perl v5.14.2 2011-09-26 Archive::Extract(3perl)