File manipulation


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File manipulation
# 1  
Old 11-09-2010
File manipulation

Hi ,

I am new to unix .
I have some issues while File manipulation .

I have file which is having block of data like
Code:
USERID 'XYX'
PASSWORD %12312323
CVZ dddas
ADDRESS chbjhcd

USERID 'BCD'
PASSWORD %1s312323
CVZ dddas
ADDRESS chbjhcd

There are thousands of entries like these . I want to replace USERID value with smaller caps in password line . new file should have something line
Code:
USERID 'XYX'
PASSWORD xyz
CVZ dddas
ADDRESS chbjhcd

USERID 'BCD'
PASSWORD bcd
CVZ dddas
ADDRESS chbjhcd

I am doing read line -
then through awk reading first word and if that word if USERID then changing it to lower case through "tr"

now I have the lower case value then How I can move to next line by using " while read" . I am able to get only one line at a time.

My sequence of Line is fixed , like USERID and PASSWORD Lines come one after another

Any help ? ..I will be posting my code shortly ...but meanwhile can some help ?

Last edited by Scott; 11-09-2010 at 01:59 PM.. Reason: Please use code tags
# 2  
Old 11-09-2010
That's a lot of fork/exec. I am a sed fan (\t is the tab key), but I am sure the real awk and PERL guys can do better:
Code:
sed '
  :loop
  $b x
  N
  /\n[ \t]*$/b x
  b loop
  :x
  s/\n/\~/g
  s/^\(USERID .\([^~]*\).\~PASSWORD \)[^~]*\~/\1\2\~/
  s/\`/\
/g
 ' $in_file | sed '
  /^PASSWORD /{
    s/^PASSWORD //
    y/QWERTYUIOPASDFGHJKLZXCVBNM/qwertyuiopasdfghjklzxcvbnm/
    s/^/PASSWORD /
   }
 '

Narrative: First sed loops collecting lines in the buffer, changes the linefeeds to '~' escaped, as it a a sed metachar, with '\', so it can change the password to uppercase USERID, then puts the linefeeds back. Reads file and writes pipe to second sed. Second sed find the Password line, removes ths word PASSWORD, converts the case down, and replaces the word PASSWORD.

Last edited by DGPickett; 11-09-2010 at 03:51 PM..
# 3  
Old 11-09-2010
Ok, here we go Smilie:
Code:
awk '
/USERID/{p=$2;gsub("\047","",p);p=tolower(p)}
/PASSWORD/{$2=p}
1' file > newfile

# 4  
Old 11-09-2010
hey thanks ...

Don't have my office network yet ...

but can you explain this code .. .if possible ...

Thanks
Amey
# 5  
Old 11-09-2010
Code:
awk '
/USERID/{p=$2;gsub("\047","",p);p=tolower(p)}
/PASSWORD/{$2=p}
1' file > newfile

Explanation:
Code:
/USERID/{p=$2;gsub("\047","",p);p=tolower(p)}

If the pattern "USERID" is matched, assign the 2nd field to the variable p, remove the quotes and make it lowercase.
Code:
/PASSWORD/{$2=p}

If the pattern "USERID" is matched, assign the variable p to the 2nd field.

Code:
1

Print the line, similar to {print}.
# 6  
Old 11-24-2010
Cool it worked but I missed one one point ...Which I tried but not able to get it ...

I wanted to new password ( lowercase password ) in single quotes like 'xyz'

seems I am having issues in " ' " script ...any help on that ?
# 7  
Old 11-24-2010
Quote:
Originally Posted by ameychawak
Cool it worked but I missed one one point ...Which I tried but not able to get it ...

I wanted to new password ( lowercase password ) in single quotes like 'xyz'

seems I am having issues in " ' " script ...any help on that ?
What should be the output based on your input file:
Code:
USERID 'XYX'
PASSWORD %12312323
CVZ dddas
ADDRESS chbjhcd

USERID 'BCD'
PASSWORD %1s312323
CVZ dddas
ADDRESS chbjhcd

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Populating File data with custom manipulation on file names

Hi, I am confused how to proceed firther please find the problem below: Input Files: DCIA_GEOG_DATA_OCEAN.TXT DCIA_GEOG_DATA_MCRO.TXT DCIA_GEOG_DATA_CVAS.TXT DCIA_GEOG_DATA_MCR.TXT Output File Name: MMA_RFC_GEOG_NAM_DIM_LOD.txt Sample Record(DCIA_GEOG_DATA_OCEAN.TXT):(Layout same for... (4 Replies)
Discussion started by: Arun Mishra
4 Replies

2. Shell Programming and Scripting

Awk to convert a text file to CSV file with some string manipulation

Hi , I have a simple text file with contents as below: 12345678900 971,76 4234560890 22345678900 5971,72 5234560990 32345678900 71,12 6234560190 the new csv-file should be like: Column1;Column2;Column3;Column4;Column5 123456;78900;971,76;423456;0890... (9 Replies)
Discussion started by: FreddyDaKing
9 Replies

3. UNIX for Dummies Questions & Answers

Filtering records from 1 file based on some manipulation doen on second file

Hi, I am looking for an awk script which should help me to meet the following requirement: File1 has records in following format INF: FAILEd RECORD AB1234 INF: FAILEd RECORD PQ1145 INF: FAILEd RECORD AB3215 INF: FAILEd RECORD AB6114 ............................ (2 Replies)
Discussion started by: mintu41
2 Replies

4. Shell Programming and Scripting

value in file - manipulation

Hi Forum. I have the following 2 files: edw_mf_bypass_msg.txt and EDW_server.cfg. edw_mf_bypass_msg.txt - File#1 contains the following text To EDW Support: This is an automatic email sent from var_hostname. Please note that the Mutual Fund load did not run today due to previous... (2 Replies)
Discussion started by: pchang
2 Replies

5. Shell Programming and Scripting

File manipulation

Legends, Please help me to get the following I have a file abc.txt with the following contents 12 13 14 15 And, i want to get the output to a variable like below 12,13,14,15 .... How do i do this? Regards, san Please use code tags when posting data and code samples! (5 Replies)
Discussion started by: sdosanjh
5 Replies

6. UNIX for Dummies Questions & Answers

file manipulation help please

Hi there, I've trawled all over the web for help, and although seen some examples of what i want to do, I cannot seem to get it to work. I need to have this as a script. If anyone can help, I would like to do the following: I have 2 files, File A and File B. I would like to keep file A but... (5 Replies)
Discussion started by: lazerlyte
5 Replies

7. Shell Programming and Scripting

File Manipulation

Hi, i have a file with fixed record length with the following content (only one sentence) 12345678901234567890123456789012345678901234567890 12345678 87654321 hugo meyer friedhofpaul the numbers above are only the column-positions and not part of the file! Now i want... (2 Replies)
Discussion started by: FranzB
2 Replies

8. Shell Programming and Scripting

Help with file manipulation

I need help manipulating text in a file. I am wanting to know a way to shell (ksh)script-edit a file by having a script that searches for a specific string, and then input lines of text in the file before that specific string, without deleting any of the other text in the file. I got this... (2 Replies)
Discussion started by: LinuxRacr
2 Replies

9. Shell Programming and Scripting

file manipulation best way ?

Hi , i would convert the following file V M BOURSE EMPLOI mail/mail-03/dfr-dc.nsf V M DelSpam mail/mail-04/celine_bet.nsf like that : mail/mail-03/dfr-dc.nsf;BOURSE EMPLOI mail/mail-20/celine_bet.nsf;DelSpam the second field ( ex:... (2 Replies)
Discussion started by: Nicol
2 Replies

10. Programming

need help with file manipulation

I've been able to open and write data to files but I need to know how to search a file for a hex string and replace it. (2 Replies)
Discussion started by: angelfly
2 Replies
Login or Register to Ask a Question