Formatting File Using Shell Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Formatting File Using Shell Script
# 15  
Old 08-10-2012
grep -En "^.{66}CONTRA" 2.txt, command is displaying the below error.
grep: illegal option -- E
Usage: grep -hblcnsviw pattern file . . .

$count variable is loosing its value after the loop.
# 16  
Old 08-10-2012
Formatting File Using Shell Script (Using AWK)

Building on Franklin52's example... I found a syntax error as well :
Code:
awk '{if (substr($0,67,6)=="CONTRA"){exit} if($1 ~ /^[0-9]/){print }}' awktest.dat

Produces
Code:
  5555555555555555555555555555555    5555555555555555 44444445 555AAAAAA            ZXXXXCONTRACTORS
  5555555555555555555555555555555    5555555555555555 44444445 555AAAAAA            ZXXXXXXXXXXXXXXXXX
  5555555555555555555555555555555    5555555555555555 44444445 555AAAAAA            ZXXXXXXXXXXXXXXXXX

with the output you provided above. But note that the column numbers 65-70 you specified do not match your example. CONTRA begins in column 67.
Code:
awk '{if (substr($0,61,6)=="CONTRA"){exit} if($1 ~ /^[0-9]/){print }}' awktest.dat

will produce
Code:
5555555555555555555555555555555 5555555555555555 44444445 555AAAAAA ZXXXXCONTRACTORS
5555555555555555555555555555555 5555555555555555 44444445 555AAAAAA ZXXXXXXXXXXXXXXXXX
5555555555555555555555555555555 5555555555555555 44444445 555AAAAAA ZXXXXXXXXXXXXXXXXX

from the second example you provided - note again CONTRA is NOT in the columns you specified, but starts in Column 61.

This
Code:
awk '{if ($4 ~ /CONTRA$/){exit} if($1 ~ /^[0-9]/){print }}' awktest.dat

will work as long as CONTRA is at the end of the 4th column. It works with both examples.

This line will cause it to break because CONTRA is in the 5th Column
Code:
5555555555555555555555555555555 555555555 55555 44444445 555CONTRA ZXXXXXXXXXXXXXXXXX

Code:
awk '{if ($4 ~ /CONTRA$/){exit} if ($5 ~ /CONTRA$/){exit} if($1 ~ /^[0-9]/){print }}' awktest.dat

works with all examples

You can send the output to a file by adding >outfile.txt to the end of the commnd
Code:
awk '{if ($4 ~ /CONTRA$/){exit} if($1 ~ /^[0-9]/){print }}' awktest.dat > outfile.txt

Hope that helps. If that doesn't solve the problem, please be a bit more specific about the actual format of the data and post some examples that I can test against.

Hope that helps.

Last edited by Franklin52; 08-10-2012 at 04:45 AM.. Reason: Please use code tags for data and code samples, thanks
# 17  
Old 08-10-2012
Hi ataneja7 ,
if I run the loop in your script, everything seems OK:
Code:
About to enter while
Line no is 1
Line no is 2
3
Job done

No loss of the count value. What's your output?

Too bad your system does not support extended regex at all, as it seems.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need some help in formatting answer of shell script

Dear all, I am new to shell scripting and have tried to make a small program for fun sake that tells age from the last number of cell phone and birth year. At the end we get a final 3 digit number and the first digit represents the last digit of cell phone and rest 2 numbers shows age. eg. 423... (4 Replies)
Discussion started by: stg44
4 Replies

2. Shell Programming and Scripting

Formatting a file using shell script

Hi, Please find the below lines of a file B1/OT "GIB10" 837 130308 1351 MONORONOUS DIGI PATH FAULT SUPER B1/OT "GIB10" 520 130418 1537 MONORONOUS DIGI PATH FAULT SUPER B1/XT "GIB10" 762 130421 0653 TV Y-CEIVER ADMIN RXOCF-62 241_OKEBOLE_NEW 1 B1/XT "GIB10" 385 130425 1931 TV Y-CEIVER... (2 Replies)
Discussion started by: Ardhendu
2 Replies

3. Shell Programming and Scripting

AWK/Shell script for formatting data in a file

Hi All, Need an urgent help to convert a unix file in to a particular format: **source file:** 1111111 2d2f2h2 3dfgsd3 ........... 1111111 <-- repeats in every nth line. remaining all lines will be different 123ss41 432ff45 ........... 1111111 <-- repetition qwe1234 123weq3... (1 Reply)
Discussion started by: rajivnairfis
1 Replies

4. Shell Programming and Scripting

formatting a shell script

there is one shell which calls for different sql scripts. output of different are formatted in frame like structure.i want columnar wise formatting to be done in such a manner that output of one sql may be comon input of rest sqls . ERC DML Closure Date ER DML SAP Transfer Date ... (0 Replies)
Discussion started by: arc
0 Replies

5. Shell Programming and Scripting

Shell Script Problems, Lose formatting when copy pasting from formatted file.

Hello, I'm having trouble with formatting some text via the terminal. I can get it perfectly formatted, but when I try and copy paste the text from the output file it loses it's formatting. Very frustrating! Basically I have 7 files (data data2 data3 data4 data5 data6 data7) containing a... (13 Replies)
Discussion started by: facetoe
13 Replies

6. Shell Programming and Scripting

Formatting a file using shell script

I have a file with contents something similar to as below : SVCNAME,12m-1a,1a-2a,2a-3a,3a-4a,5a-6a,6a-7a,7a-8a,8a-9a,9a-10a,10a-11a,11a-12n,12n-1p,13p-14p,14p-15p,15p-16p,16p-17p,17p-18p,18p-19p,19p-20p,20p-21p,21p-22p,22p-23p,11p-12m, TOTALS... (5 Replies)
Discussion started by: deo_kaustubh
5 Replies

7. Shell Programming and Scripting

Date formatting in shell script

Hi, I am writing a script and I need to calculate last weeks date. I get the current date as; today=`date '+%Y%m%d'` and I need last week inthe same format. Thanks, (2 Replies)
Discussion started by: ozum
2 Replies

8. Shell Programming and Scripting

Formatting the text file using shell script

How to add the filename to end of each line with | as seperator, except first and last line of the file(s) in directories(with diff tree structure) using shell script?. And also how to replace a list of strings with another set of strings, which is present in a file?. Kindly help out on... (1 Reply)
Discussion started by: av_vinay
1 Replies

9. Shell Programming and Scripting

formatting a file using shell script

Hi I have to do the following.I have to format a file test.t The contents are # Header 1231 xyz asdf asdapsdcsd //string1 = "pqrs" //string1 = "abcd"; //info //string1 = "*pqrs"; //add string1 = "#123"; //sub //string1 = "#1234567890" data = check(string1) //string1 = "#1234567890"... (12 Replies)
Discussion started by: gopsman
12 Replies

10. Shell Programming and Scripting

Formatting lines in shell script

I have a file with the below lines 1521 1522 1523 1524 1525 1526 ... 174 lines all numbers like above. I want the above file to appear as below. 1521,1522,1523,1524..... All the numbers should be separated by comma. Pls tell me how to do this .... Thanks in advance. (8 Replies)
Discussion started by: dreams5617
8 Replies
Login or Register to Ask a Question