Sponsored Content
Full Discussion: Perl line switching
Top Forums Programming Perl line switching Post 302478239 by fpmurphy on Tuesday 7th of December 2010 11:56:55 AM
Old 12-07-2010
Your requirements are still unclear and have changed since your first post. Do you want to switch lines every time you find a match or just once?

Perhaps a simple example will help you clarify your requirements:
Code:
#!/usr/local/bin/perl

use strict;
use warnings;

my $filename = "example.txt";

my $found0 = 0;
my $found1 = 0;
my $line0;
my $line1;

open(FILE, "<$filename");

while (<FILE>) {
   my ($lookup, $junk) = split(/,/, $_, 2);
   if ($lookup == $ARGV[0] && $found0 == 0) {
       $found0 = $.;
       $line0 = $_;
   }
   if ($lookup == $ARGV[1] && $found1 == 0) {
       $found1 = $.;
       $line1 = $_;
   }
}
close(FILE);

print "Matched \'$ARGV[0]\' at line $found0\n";
print "Matched \'$ARGV[1]\' at line $found1\n\n";

open(FILE, "<$filename");
while (<FILE>) {
   my $line = $_;
   if ($. == $found0)  {
      print $line1;
   } elsif ($. == $found1) {
      print $line0;
   } else {
      print "$line";
   }
}

close(FILE);

here is the contents of example.txt
Code:
1111,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^
2222,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^
3333,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^
4444,!!!!!,-----,-----,------,------,------,-----,------
5555,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^

and here is the output when the above script is executed
Code:
$ ./example.pl 2222 4444
Matched '2222' at line 2
Matched '4444' at line 4

1111,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^
4444,!!!!!,-----,-----,------,------,------,-----,------
3333,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^
2222,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^
5555,@@@@@,^^^,^^^,^^^,^^^,^^^,^^^,^^^^^
$

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl script to search a line and copy it to another line

Hi I have a log file (say log.txt). I have to search for a line which has the string ( say ERROR) in the log file and copy 15 lines after this into another file (say error.txt). Can someone give me the code and this has to be in PERL Thanks in advance Ammu (3 Replies)
Discussion started by: ammu
3 Replies

2. Shell Programming and Scripting

How to use Perl to join multi-line into single line

Hello, Did anyone know how to write a perl script to merge the multi-line into a single line where each line with start at timestamp Input--> timestamp=2009-11-10-04.55.20.829347; a; b; c; timestamp=2009-11-10-04.55.20.829347; aa; bb; cc; (5 Replies)
Discussion started by: happyday
5 Replies

3. Shell Programming and Scripting

perl/unix: script in command line works but not in perl

so in unix this command works works and shows me a list of directories find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt but when i try running a perl script to run this command my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies

4. Programming

concatinate all lines from second line to end of line in perl

I have datafile like ~dta.yunm shhshsgggssssjsksjs sggsjshsjsjssss shshshhshshshs i wish to take only first line and all other lines in concatenated form in second line what should I do??? output like ~dta.yunm shhshsgggssssjsksjssggsjshsjsjssssshshshhshshshs please tell me how... (7 Replies)
Discussion started by: sujit_singh
7 Replies

5. Shell Programming and Scripting

PERL or SHELL Scrript to search in Directories by taking line by line from a text file

Unix box server version *********** >uname -r B.11.00 >echo $SHELL /usr/bin/ksh --> in this server, I have the path like /IMbuild/dev/im0serv1 ---> in that directory I have the folders startup(.jsp files nearly 100 jsp's ) and scripts(contains .js files nearly 100 files) ... (9 Replies)
Discussion started by: pasam
9 Replies

6. Shell Programming and Scripting

perl: comparision of field line by line in two files

Hi everybody, First I apologize if my question seems demasiad you silly, but it really took 4 days struggling with this, I looked at books, forums ... And Also ask help to a friend that is software developer and he told me that it is a bad idea do it by perl... but this is my problem. I moved to... (8 Replies)
Discussion started by: Thelost
8 Replies

7. Shell Programming and Scripting

Make Multile line is one line using window Perl

Hi All I have a .csv file which is showing data as ESP Client,ESP Engagement,Misc_Projects_120101,DEFAULT,HA,Unknown,No,Unknown,201704,4.1,Unknown,AAA,Collected-Done,"she,joy.",200111,Unknown,Full Time,,Delivery_DONE AMO,Approved,2012-12-03,2012-12-06,2012-12-06,"Occupied Hours ... (7 Replies)
Discussion started by: adisky123
7 Replies

8. Shell Programming and Scripting

Perl how to compare two pdf files line by line

Hi Experts, Would really appreciate if anyone can guide me how to compare two pdf files line by line and report the difference to another file. (3 Replies)
Discussion started by: prasanth_babu
3 Replies

9. Shell Programming and Scripting

Perl to extract information from a file line by line

In the below perl code I am using tags within each line to extract certain information. The tags that are used are: STB >0.8 is STRAND BIAS otherwise GOOD FDP is the second number GO towards the end of the line is read into an array and the value returned is outputed, in the first line that... (1 Reply)
Discussion started by: cmccabe
1 Replies

10. Shell Programming and Scripting

Perl command line option '-n','-p' and multiple files: can it know a file name of a printed line?

I am looking for help in processing of those options: '-n' or '-p' I understand what they do and how to use them. But, I would like to use them with more than one file (and without any shell-loop; loading the 'perl' once.) I did try it and -n works on 2 files. Question is: - is it possible to... (6 Replies)
Discussion started by: alex_5161
6 Replies
pvs(1)                                                             User Commands                                                            pvs(1)

NAME
pvs - display the internal version information of dynamic objects SYNOPSIS
pvs [-Cdlnorsv] [-N name] file... DESCRIPTION
The pvs utility displays any internal version information contained within an ELF file. Commonly, these files are dynamic executables and shared objects, and possibly relocatable objects. This version information can fall into one of two categories: o version definitions o version dependencies Version definitions describe the interfaces that are made available by an ELF file. Each version definition is associated to a set of global symbols provided by the file. Version definitions can be assigned to a file during its creation by the link-editor using the -M option and the associated mapfile directives. See the Linker and Libraries Guide for more details. Version dependencies describe the binding requirements of dynamic objects on the version definitions of any shared object dependencies. When a dynamic object is built with a shared object, the link-editor records information within the dynamic object indicating that the shared object is a dependency. This dependency must be satisfied at runtime. If the shared object also contains version definitions, then those version definitions that satisfy the global symbol requirements of the dynamic object are also recorded in the dynamic object being created. At process initialization, the runtime linker uses any version dependencies as a means of validating the interface requirements of the dynamic objects used to construct the process. OPTIONS
The following options are supported. If neither the -d or -r options are specified, both are enabled. -C Demangles C++ symbol names. -d Prints version definition information. -l When used with the -s option, prints any symbols that have been reduced from global to local binding due to versioning. By conven- tion, these symbol entries are located in the .symtab section, and fall between the FILE symbol representing the output file, and the FILE symbol representing the first input file used to generate the output file. These reduced symbol entries are assigned the fabricated version definition _REDUCED_. No reduced symbols will be printed if the file has been stripped (see strip(1)), or if the symbol entry convention cannot be determined. -n Normalizes version definition information. By default, all version definitions within the object are displayed. However, version definitions can inherit other version definitions. Under normalization, only the head of each inheritance list is displayed. -N name When used with the -d option, -N prints only the information for the given version definition name and any of its inherited ver- sion definitions. When used with the -r option, -N prints only the information for the given dependency file name. -o Creates one-line version definition output. By default, file, version definitions, and any symbol output is indented to ease human inspection. This option prefixes each output line with the file and version definition name and can be more useful for analysis with automated tools. -r Prints version dependency (requirements) information. -s Prints the symbols associated with each version definition. Any data symbols are accompanied with the size, in bytes, of the data item. -v Verbose output. Indicates any weak version definitions, and any version definition inheritance. When used with the -N and -d options, the inheritance of the base version definition is also shown. When used with the -s option, the version symbol definition is also shown. OPERANDS
The following operands are supported. file The ELF file about which internal version information is displayed. EXAMPLES
Example 1: Displaying version definitions The following example displays the version definitions of libelf.so.1: % pvs -d /lib/libelf.so.1 libelf.so.1; SUNW_1.1 Example 2: Creating a one-liner display A normalized, one-liner display, suitable for creating a mapfile version control directive, can be created using the -n and -o options: % pvs -don /lib/libelf.so.1 /lib/libelf.so.1 - SUNW_1.1; Example 3: Displaying version requirements The following example displays the version requirements of ldd and pvs: % pvs -r /usr/bin/ldd /usr/bin/pvs /usr/bin/ldd: libelf.so.1 (SUNW_1.1); libc.so.1 (SUNW_1.1); /usr/bin/pvs: libelf.so.1 (SUNW_1.1); libc.so.1 (SUNW_1.1); EXIT STATUS
If the requested version information is not found, a non-zero value is returned. Otherwise, a 0 value is returned. Version information is determined not found when any of the following is true: o the -d option is specified and no version definitions are found. o the -r option is specified and no version requirements are found. o neither the -d nor -r option is specified and no version definitions or version requirements are found. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWtoo | +-----------------------------+-----------------------------+ SEE ALSO
ld(1), ldd(1), strip(1), elf(3ELF), attributes(5) Linker and Libraries Guide SunOS 5.10 14 Apr 2004 pvs(1)
All times are GMT -4. The time now is 06:31 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy