Sponsored Content
Top Forums UNIX for Dummies Questions & Answers using 'cat' to in 'while read line' Post 96206 by mahendramahendr on Wednesday 18th of January 2006 01:40:50 PM
Old 01-18-2006
Yes you can use perl, that would be better than bash..

But if there is any extra line in middle on any one file, then your script will show that all lines after that extra line are not matching though the data might match, because you are comparing data against exact line numbers. You need to put extra efforts here to match this kind of stuff like what diff unix command does, diff unix command won't match based on the line numbers...

Why can't you use unix diff command ?? here is an example


$ more datafile
abcdefghijklmnopqrstuvwxyz.
123456789009876543211234567
This line to be removed.
zyxwvutsrqponmlkjihgfedcba.

$ more datafile1
abcdefghijklmnopqrstuvwxyz.
1234567890098765432112345672
hello how are you
This line to be removed.
zyxwvutsrqponmlkjihgfedcba.4

$ $ diff datafile datafile1
2c2,3
< 123456789009876543211234567
---
> 1234567890098765432112345672
> hello how are you
4c5
< zyxwvutsrqponmlkjihgfedcba.
---
> zyxwvutsrqponmlkjihgfedcba.4



in the above diff, you can see (highlighted in bold)

<number>c<number>,<number>.......

i.e first number before character "c" is the line number from first file and numbers after "c" are numbers from 2nd file in diff command.

2c2,3 mean line number 2 in datafile is different from line numbers 2 and 3 in datafile1. Here you can see that line 3 in datafile1 is an extra line that is completly missing in datafile, so diff ignores this line and starts comparing datafile line 3 against datafile1 line 4.... not line 3 in datafile against line 3 in datafile 4.

You can actually egrep "^[0-9]*c[0-9]*[,0-9]*" or egrep -v "<|>|-" from the diff output, to get the lines which differ and the make use of it... based on the line numbers you can set the true or false..

not sure there is a simple way.. may be i can take a look if i find time
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cat and read command

Here's what the shell (korn) script is doing: 1. Prompt for input 2. Read a file using the cat and the while read command. 3. Get a field on the record and hold that value in a variable. 4. Within the process, I then need to prompt the user again to ask them if they are sure they want to make... (3 Replies)
Discussion started by: mango
3 Replies

2. Shell Programming and Scripting

Cat'ing a multiple line file to one line

I am writing a script that is running a loop on one file to obtain records from another file. Using egrep, I am finding matching records in file b, then outputing feilds of both into another file. **************************** filea=this.txt fileb=that.txt cat $filea | while read line do... (1 Reply)
Discussion started by: djsal
1 Replies

3. Shell Programming and Scripting

cat file1 read line-per-line then grep -A 15 lines down in fileb

STEP 1 # Set variable FILE=/tmp/mainfile SEARCHFILE =/tmp/searchfile # THIS IS THE MAIN FILE. cat /tmp/mainfile Interface Ethernet0/0 "outside", is up, line protocol is up Hardware is i82546GB rev03, BW 100 Mbps Full-Duplex(Full-duplex), 100 Mbps(100 Mbps) MAC address... (6 Replies)
Discussion started by: irongeekio
6 Replies

4. Shell Programming and Scripting

cat in the command line doesn't match cat in the script

Hello, So I sorted my file as I was supposed to: sort -n -r -k 2 -k 1 file1 | uniq > file2 and when I wrote > cat file2 in the command line, I got what I was expecting, but in the script itself ... sort -n -r -k 2 -k 1 averages | uniq > temp cat file2 It wrote a whole... (21 Replies)
Discussion started by: shira
21 Replies

5. Shell Programming and Scripting

help using read in menu script to cat out lines in logs

What is wrong with my menu script? Do I need to continue with the read statements? All I want to do with option 4 is to cat some /var/log/files and awk out a few lines? How do I do that please? $ cat menu.sh ... (11 Replies)
Discussion started by: taekwondo
11 Replies

6. Shell Programming and Scripting

Read files, lines into array, cat vs open

Hi Everyone, I have a file: a.txt a,b,c,d,6,6,6 1,2,3,d,6,6,6 4,5,6,6,6,6,6 #!/usr/bin/perl use warnings; use strict; my @array = (); ### Load file into array for my $i (split '\n', `cat /tmp/a.txt`) { push @array, ; } It works. But my a.txt have 1million lines, and... (2 Replies)
Discussion started by: jimmy_y
2 Replies

7. Shell Programming and Scripting

bash: read file line by line (lines have '\0') - not full line has read???

I am using the while-loop to read a file. The file has lines with null-terminated strings (words, actually.) What I have by that reading - just a first word up to '\0'! I need to have whole string up to 'new line' - (LF, 10#10, 16#A) What I am doing wrong? #make file 'grb' with... (6 Replies)
Discussion started by: alex_5161
6 Replies

8. Shell Programming and Scripting

How can I read variable text files through cat command?

Hi. I'm just wondering how can I read variable text files through cat command. I made a shell script to count frequency of words and array them with variable conditions. It's only working for one file that I wrote in script now. But I want to make it working for every text file when I execute... (2 Replies)
Discussion started by: rlaxodus
2 Replies

9. Shell Programming and Scripting

Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...

Hello, I need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line... An example of entries in the file would be: SRVXPAPI001 ERRO JUN24 07:28:34 1775 REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F ... (8 Replies)
Discussion started by: Ferocci
8 Replies

10. Solaris

Not able read data with cat command

I am trying to read some data form .key file with cat command..but its not displaying data correctly..tried with other commands also still no use.i tried with CAT with SED combination but no use.. Please help me with the command or script. (10 Replies)
Discussion started by: kish_rock
10 Replies
cat(1)								   User Commands							    cat(1)

NAME
cat - concatenate and display files SYNOPSIS
cat [-nbsuvet] [file...] DESCRIPTION
The cat utility reads each file in sequence and writes it on the standard output. Thus: example% cat file prints file on your terminal, and: example% cat file1 file2 >file3 concatenates file1 and file2, and writes the results in file3. If no input file is given, cat reads from the standard input file. OPTIONS
The following options are supported: -n Precede each line output with its line number. -b Number the lines, as -n, but omit the line numbers from blank lines. -u The output is not buffered. (The default is buffered output.) -s cat is silent about non-existent files. -v Non-printing characters (with the exception of tabs, new-lines and form-feeds) are printed visibly. ASCII control characters (octal 000 - 037) are printed as ^n, where n is the corresponding ASCII character in the range octal 100 - 137 (@, A, B, C, . . ., X, Y, Z, [, , ], ^, and _); the DEL character (octal 0177) is printed ^?. Other non-printable characters are printed as M-x, where x is the ASCII character specified by the low-order seven bits. When used with the -v option, the following options may be used: -e A $ character will be printed at the end of each line (prior to the new-line). -t Tabs will be printed as ^I's and formfeeds to be printed as ^L's. The -e and -t options are ignored if the -v option is not specified. OPERANDS
The following operand is supported: file A path name of an input file. If no file is specified, the standard input is used. If file is `-', cat will read from the standard input at that point in the sequence. cat will not close and reopen standard input when it is referenced in this way, but will accept multiple occurrences of `-' as file. USAGE
See largefile(5) for the description of the behavior of cat when encountering files greater than or equal to 2 Gbyte ( 2**31 bytes). EXAMPLES
Example 1: Concatenating a file The following command: example% cat myfile writes the contents of the file myfile to standard output. Example 2: Concatenating two files into one The following command: example% cat doc1 doc2 > doc.all concatenates the files doc1 and doc2 and writes the result to doc.all. Example 3: Concatenating two arbitrary pieces of input with a single invocation The command: example% cat start - middle - end > file when standard input is a terminal, gets two arbitrary pieces of input from the terminal with a single invocation of cat. Note, however, that if standard input is a regular file, this would be equivalent to the command: cat start - middle /dev/null end > file because the entire contents of the file would be consumed by cat the first time `-' was used as a file operand and an end-of-file condition would be detected immediately when `-' was referenced the second time. ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of cat: LANG, LC_ALL, LC_CTYPE, LC_MES- SAGES, and NLSPATH. EXIT STATUS
The following exit values are returned: 0 All input files were output successfully. >0 An error occurred. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
touch(1), attributes(5), environ(5), largefile(5), standards(5) NOTES
Redirecting the output of cat onto one of the files being read will cause the loss of the data originally in the file being read. For exam- ple, example% cat filename1 filename2 >filename1 causes the original data in filename1 to be lost. SunOS 5.10 1 Feb 1995 cat(1)
All times are GMT -4. The time now is 12:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy