Reading files using AWK or SED


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Reading files using AWK or SED
# 1  
Old 07-28-2009
PHP Reading files using AWK or SED

hi Friends,

Please help me to give a try for writing a shell script either with awk or SED for the below requirement.

i have file with 3 lines, each of size 3200 chars, wanted to read this file and divide eachline with 200 columns with differensizes for each column value by keeping seperator.

input:

asdfghjkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjjjjuuuuuuuuuuuuu
zxccvbnmlkjhgfdsaqwertyuioplkjhgfdsaxcvbnmougfds

output:
asdfghjkk|kkkkkkkkkkkkkkkkkkkkjj|jjjjjjjjjuuuuuuuuuuu|uu
zxccvbnm|lkjhgfdsaqwertyuioplkj|hgfdsaxcvbnmougf|ds

what i have tried is as below:
nawk -F\n -f addDelimiter.awk src.txt >tgt.txt

##addDelimiter.awk

printf substring($1,0,9)"|"substring($1,9,20)"|"substring($1,20,20)"|"substring($1,40,2)

it is bailing out error when i ran first, checked open and close paranthesis then i ran next time length of string is too large.

as i told u earlier i took line of size 3200 chars.

please advise on above script.


thanks in advance.
--Bali
# 2  
Old 07-28-2009
substring is not an awk function, typo?

Most awk implementations have a limitation of 3000 characters per record. Try it with gawk or mawk if you have that installed on your system.
# 3  
Old 07-28-2009
You can use substr() instead of substring() depending on what version of awk your using. Besides gawk or mawk you may also have nawk depending on your O/S.
# 4  
Old 07-28-2009
Code:
xx='asdfghjkkkkkkkkkkkkkkkkkkkkkkjjjjjjjjjjjuuuuuuuuuuuuu'
echo $xx | sed 's/^\(.\{9\}\)\(.\{20\}\)\(.\{20\}\)\(.\{2\}\)\(.*$\)/\1|\2|\3|\4|\5/'

output:
Code:
asdfghjkk|kkkkkkkkkkkkkkkkkkkk|jjjjjjjjjjjuuuuuuuuu|uu|uu

I think sed will have no issues for 3200 chars.
But, for 200 fields/column the command will be really huge.
Just like AWK it will have to be written to a file and invoked.
Code:
sed -f sedcomm.sed inputfile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading and appending a row from file1 to file2 using awk or sed

Hi, I wanted to add each row of file2.txt to entire length of file1.txt given the sample data below and save it as new file. Any idea how to efficiently do it. Thank you for any help. input file file1.txt file2.txt 140 30 200006 141 32 140 32 200006 142 33 140 35 200006 142... (5 Replies)
Discussion started by: ida1215
5 Replies

2. Shell Programming and Scripting

awk - sed / reading from a data file and doing algebraic operations

Hi everyone, I am trying to write a bash script which reads a data file and does some algebraic operations. here is the structure of data.xml file that I have; 1 <data> 2 . 3 . 4 . 5 </data> 6 <data> 7 . 8 . 9 . 10</data> etc. Each data block contains same number of lines (say... (4 Replies)
Discussion started by: hayreter
4 Replies

3. Shell Programming and Scripting

Reading txt files using the awk

Dear Shell scripters, I have a small code which copy the txt files from some destination to file name OutPutFile. I want to modify this script to introduce several constant. The string it is reading is like ... (2 Replies)
Discussion started by: nrjrasaxena
2 Replies

4. Shell Programming and Scripting

Help with reading two input files in awk

Hello, I'm trying to write an awk program that reads two files inputs. example, file 1: 0.00017835 0.000176738 0.00018811 0.000189504 0.000188155 0.000180065 0.000178991 0.000178252 0.000182513 file 2: 1.7871769E-05 1.5139576E-16 1.5140196E-16 1.5139874E-16 1.7827407E-04 ... (5 Replies)
Discussion started by: joseamck
5 Replies

5. Shell Programming and Scripting

reading files using awk

Hi , I have a awk script to read a file using getline, but when its not able to recognize the path of the file. I am working on solaris unix. nawk -F'|' ' BEGIN{ FILE1="/input_files/temp.txt" } I have to place my script in the same folder i.e /input_files/ for my script to work. ... (2 Replies)
Discussion started by: rashmisb
2 Replies

6. Shell Programming and Scripting

reading from 2 files using awk

hi, Is it possible to read and compare 2 files which have different Field separators at the same time using awk??? file1: 1,dayal,maruti,Z-234,bangalore,KA,........ 2,yash,esteem,Y-007,delhi,DL,........... . . . fill 2: Z-234|Registered|Bangalore Y-007|Registered|Bangalore . . . ... (2 Replies)
Discussion started by: VGR
2 Replies

7. Shell Programming and Scripting

Reading Two files at the same time using awk

Hi All, I am very new to awk script writing. I have two files(file1 and file2) containing some numbers. I want divide the numbers in file1 with those in file 2 line wise. is it possible to simultaneousely read the information from both files and carry put the division. Thanks a lot in... (6 Replies)
Discussion started by: suneeldutt
6 Replies

8. Shell Programming and Scripting

Reading files using grep/sed/awk

After pouring over my LTKS and Unix in a nutshell, I'm stuck! I have a large (BMC Report File) that has breaks on DM (district managers). After a report header, there is a DM header like: DM: DBP AARON ROBERTS At the end of each DM break, there is: ** END OF REPORT ** ... (6 Replies)
Discussion started by: Jodyman
6 Replies

9. Shell Programming and Scripting

Reading an Input file and searching for occurrences WIHOUT SED or AWK

Hi people. I am new to shell scripting, so I need a little help. I want to create a script named that takes an argument as a file, Read the input file and look for occurrences of the current username (say abc.xyz) who is executing the script. On finding an occurrence of the username take that line... (2 Replies)
Discussion started by: kartikkumar84@g
2 Replies

10. Shell Programming and Scripting

awk reading 2 input files but not getting expected value

I'm reading 2 input files but not getting expected value. I should get an alpha value on file_1_data but not getting any. Please help. >cat test6.sh awk ' FILENAME==ARGV { file_1_data=$0; print "----- 1 Line " NR " -----" $1; next } FILENAME==ARGV { file_2_data=$0; print "----- 2... (1 Reply)
Discussion started by: pdtak
1 Replies
Login or Register to Ask a Question