Sponsored Content
Top Forums Shell Programming and Scripting Perl script that counts lines of a file Post 302322096 by Breakology on Tuesday 2nd of June 2009 08:31:00 PM
Old 06-02-2009
Perl script that counts lines of a file

I am working on this script, but hit a bump. Looking for a little help figuring out the last part:

Code:
open(MY_FILE, $ARGV[0]) or die

$COUNTER = 1;
$LINE = <FILE>;
while ($LINE, <FILE>) {
# Adds leading zeros for numbers 1 digit long
   if ($COUNTER<10){
      print "000";
   }
   # Adds leading zeros for numbers 2 digits long
   if (($COUNTER>9) && ($COUNTER<100)){
      print "00";
   }
   # Adds leading zeros for numbers 3 digits long
   if (($COUNTER>99) && ($COUNTER<1000)){
   print "0";
   }
   # Prints line number and line
   print "$COUNTER: $LINE \n";
   $COUNTER += 1;
    }
    close FILE;

script counts the lines of a file, and outputs each line along with its line number

example: 0001:#first line of the file

script counts the lines in the file, but only outputs the first line of the file on every line. Not sure what I am missing, I know it has something to do with what I assign to the $LINE variable, and the operator in the while loop, but I am stuck. I hate asking for help, but I am banging my head on the keyboard.
 

10 More Discussions You Might Find Interesting

1. Solaris

file size counts??

Hello experts, I do - $ ls -lhtr logs2007* Is it possible that i can get the results of- totals size in MB/KB for ALL "logs2007*" note: in the same directory I have "logs2006*" & "logs2007*" files. (4 Replies)
Discussion started by: thepurple
4 Replies

2. Shell Programming and Scripting

Perl script to scan back lines

Hi Perl gurus, I have this file to scan through. Sample lines below: 2008031A, USERNAME, 12345, give ABC, take XYZ, transaction submitted 2008031B, USERNAME, 12346, waiting for processing 2008031C, USERNAME, 12347, Retrieving response 2008031D, USERNAME, 12348, This is not a valid dealing... (3 Replies)
Discussion started by: gholdbhurg
3 Replies

3. UNIX for Dummies Questions & Answers

Perl/shell script count the lines

Hi Guys, I want to write a perl/shell script do parse the following file input file content NPA-NXX SC 2084549 45 2084552 45 2084563 2007 2084572 45 2084580 45 3278411 45 3278430 45 3278493 530 3278507 530... (3 Replies)
Discussion started by: pistachio
3 Replies

4. Shell Programming and Scripting

how to use IF-THEN within csh script to check Db counts

hi everyone, rookie scripter here. Under some time pressure here and hoping you can help. I've written a .csh script that needs to check a row count in an Oracle table, then do an IF-THEN check against that count. Two different select statements actually, one after another. If either of the two... (1 Reply)
Discussion started by: gregrobinsonhd
1 Replies

5. Shell Programming and Scripting

Perl - need script for modify lines

Hello, does somebody can make script for me, which replace: ąćę ąćę ąćę (input file) to ace;|;ąćę ace;|;ąćę ace;|;ąćę (output file) (3 Replies)
Discussion started by: Xadrian
3 Replies

6. Shell Programming and Scripting

Script to compare table counts...

Hello all, I am very new to unix. I am working on a DB upgrade. The requirement is to get count of all the tables in the database before and after upgrade and compare them. I found the below query to find the counts of all the tables: nawk -v v="'" '{ print("select " v ":" $1":" v... (2 Replies)
Discussion started by: vkrisaak
2 Replies

7. Shell Programming and Scripting

perl script print the lines between two pattern

i have a file as below sample.pl parameter1 argument1 argument2 parameter2 I want out as below argument1 argument2 that is , i want to print all the lines between parameter1 & parameter 2. i tried with the following if($mystring =~ m/parameter1(.*?)parameter2/) (2 Replies)
Discussion started by: roopa
2 Replies

8. Shell Programming and Scripting

Filtering lines for column elements based on corresponding counts in another column

Hi, I have a file like this ACC 2 2 21 aaa AC 443 3 22 aaa GCT 76 1 33 xxx TCG 34 2 33 aaa ACGT 33 1 22 ggg TTC 99 3 44 wee CCA 33 2 33 ggg AAC 1 3 55 ddd TTG 10 1 22 ddd TTGC 98 3 22 ddd GCT 23 1 21 sds GTC 23 4 32 sds ACGT 32 2 33 vvv CGT 11 2 33 eee CCC 87 2 44... (1 Reply)
Discussion started by: polsum
1 Replies

9. Shell Programming and Scripting

UNIX/Perl script to call informatica source counts

Hi Guys, I am trying below condition . We are using Informatica 9.5 and scheduling certain informatica mapping on set timings .But we are not sure whether the database source table are latest or not .Since its gets updated on daily basis and not sure when it completes.Can we write any unix/perl... (1 Reply)
Discussion started by: Perlbaby
1 Replies

10. Shell Programming and Scripting

Counts not matching in file

I can not figure out why there are 56,548 unique entries in test.bed. However, perl and awk see only 56,543 and that # is what my analysis see's as well. What happened to the 5 missing? Thank you :). The file is attached as well. cmccabe@DTV-A5211QLM:~/Desktop/NGS/bed/bedtools$wc -l... (2 Replies)
Discussion started by: cmccabe
2 Replies
STRVERSCMP(3)						     Linux Programmer's Manual						     STRVERSCMP(3)

NAME
strverscmp - compare two version strings SYNOPSIS
#define _GNU_SOURCE #include <string.h> int strverscmp(const char *s1, const char *s2); DESCRIPTION
Often one has files jan1, jan2, ..., jan9, jan10, ... and it feels wrong when ls(1) orders them jan1, jan10, ..., jan2, ..., jan9. In order to rectify this, GNU introduced the -v option to ls(1), which is implemented using versionsort(3), which again uses strverscmp(). Thus, the task of strverscmp() is to compare two strings and find the "right" order, while strcmp(3) only finds the lexicographic order. This function does not use the locale category LC_COLLATE, so is meant mostly for situations where the strings are expected to be in ASCII. What this function does is the following. If both strings are equal, return 0. Otherwise find the position between two bytes with the property that before it both strings are equal, while directly after it there is a difference. Find the largest consecutive digit strings containing (or starting at, or ending at) this position. If one or both of these is empty, then return what strcmp(3) would have returned (numerical ordering of byte values). Otherwise, compare both digit strings numerically, where digit strings with one or more leading zeros are interpreted as if they have a decimal point in front (so that in particular digit strings with more leading zeros come before digit strings with fewer leading zeros). Thus, the ordering is 000, 00, 01, 010, 09, 0, 1, 9, 10. RETURN VALUE
The strverscmp() function returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be earlier than, equal to, or later than s2. CONFORMING TO
This function is a GNU extension. SEE ALSO
rename(1), strcasecmp(3), strcmp(3), strcoll(3), feature_test_macros(7) COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. GNU
2001-12-19 STRVERSCMP(3)
All times are GMT -4. The time now is 07:22 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy