Visit Our UNIX and Linux User Community


generate new string from a text file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting generate new string from a text file
# 1  
Old 10-07-2007
generate new string from a text file

Hi,

I have a file and the content looks like this:

line1
line2
File #5 : found
'/u01/testing.txt'
line5
line6
line7
File #12 : found
'/u01/testabc.txt'
line10
line11

I want to write a bash script to give me the output:

The file 5 is '/u01/testing.txt'
The file 12 is '/u01/testabc.txt'


As I am new in shell script, can anyone tell me how to do this?

Thanks!!
Walter
# 2  
Old 10-07-2007
try this

Code:
sed -n '/found/{p;n;p;}' filename | tr '\n' ' ' | sed -e 's/ : found/ is /g' -e 's/File/\nFile/g'

# 3  
Old 10-07-2007
Code:
awk '/File #/{printf "%s %s is ",$1,$2;getline;print}' filename

Code:
sed -n '/File #/{N;s/ : found\n/ is /p;}' filename


Last edited by radoulov; 10-16-2007 at 05:46 PM.. Reason: sed added
# 4  
Old 10-07-2007
Thanks!
It Works!
# 5  
Old 10-13-2007
can you please give idea how you people are writing prog using sed and awk.
i tried several time and but failed.
please give me idea how start.

i read lot of stuff in sed and awk , even thu after seeing this i feel still i lag some where.

any help would be great full
# 6  
Old 10-16-2007
I second that

Jacoden and Radouluv, you guys are really good at this stuff.

If you have a moment to break down the thought process behind some of your solutions, I know that many people would benefit.

Thanks
# 7  
Old 10-16-2007
awk

Code:
awk '/File #/{printf "%s %s is ",$1,$2;getline;print}' filename

Code:
/File #/{printf "%s %s is ",$1,$2;

If the record matches the pattern "File #", print (formated without a trailing new line: "%s %s is ") fields #1 and 2 (default field separator - space* - is assumed), so in our case the first match returns:

Code:
File #5 is

Code:
getline;print}

Read the next record (getline) and print it. So from:

Code:
File #5 : found
'/u01/testing.txt'

we get:

Code:
File #5 is '/u01/testing.txt'

sed

Code:
sed -n '/File #/{N;s/ : found\n/ is /p;}' filename

Code:
sed -n '/File #/{N;

1. The -n option: suppress automatic printing of pattern space.
2. If the current record/line matches the pattern "File #"...
3. N; - Read/append the next line of input into the pattern space,
so now, after the first match, our pattern space contains:

Code:
File #5 : found
'/u01/testing.txt'

Code:
s/ : found\n/ is /

In the pattern space: substitute the pattern ": found
" with " is ".

Code:
p;}

Print the current pattern space.

P.S. I modified my original sed version (a small fix).

Previous Thread | Next Thread
Test Your Knowledge in Computers #953
Difficulty: Medium
A memory-resident virus installs itself as part of the operating system when executed, after which it remains in RAM from the time the computer is booted up to when it is shut down.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Search a string and display its location on the entire string and make a text file

I want to search a small string in a large string and find the locations of the string. For this I used grep "string" -ob <file name where the large string is stored>. Now this gives me the locations of that string. Now how do I store these locations in a text file. Please use CODE tags as... (7 Replies)
Discussion started by: ANKIT ROY
7 Replies

2. Shell Programming and Scripting

Generate .csv file a text file

Hi guys, I have a text file that states: cat prod.hosts 11.29.130.14 host1 host1.test.com web17 11.29.130.15 host2 host2.test.com web18 11.29.130.16 host3 host3.test.com web19 I want a .csv file that states: ... (2 Replies)
Discussion started by: Junaid Subhani
2 Replies

3. Shell Programming and Scripting

Search a string in a text file and add another string at the end of line

Dear All I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB... (5 Replies)
Discussion started by: suryanarayana
5 Replies

4. Shell Programming and Scripting

Search a string in a text file and add another string at the particular position of a line

I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB and add/replace... (1 Reply)
Discussion started by: suryanarayana
1 Replies

5. Shell Programming and Scripting

a shell script to generate an excel sheet from a text file..

hi, i have a text file that looks like this! i want to generate an excel sheet out of it, removing all the junk data except the addresses that look like . Arrow Electrical Services Rotating Machinery, Electrical Contracting & Mining Specialists Onsite maintenance, breakdown... (8 Replies)
Discussion started by: vemkiran
8 Replies

6. Shell Programming and Scripting

KSH - help needed for creating a script to generate xml file from text file

Dear Members, I have a table in Oracle DB and one of its column name is INFO which has data in text format which we need to fetch in a script and create an xml file of a new table from the input. The contents of a single cell of INFO column is like: Area:app - aam Clean Up Criteria:... (0 Replies)
Discussion started by: Yoodit
0 Replies

7. Shell Programming and Scripting

generate tabular output from an input text file in unix shell scripting

Hi, I have the output (as below) which i want it to be in a table. For e.g. space utilization in PSE on path /logs is 0% space utilization in PSE on path /logs/tuxedo/tuxlsp is 16% space utilization in PSE on path /ldvarlsp/lsp/log is 37% space utilization in PSE on path /home is 6%... (7 Replies)
Discussion started by: pkbond
7 Replies

8. UNIX for Dummies Questions & Answers

How to generate multiple lines in a text file?

Hello, I want to create a file whose content is multiple lines of strings. The string has the following pattern: aaaa/bbbb/A-B.txt A is a variable ranges from A1 to A2 B is a variable ranges from B1 to B2 Any ideas? Thanks. (17 Replies)
Discussion started by: vic005
17 Replies

9. Shell Programming and Scripting

Generate a XML file from a text file

FILE-1 USER username@foo.com TOOLIN tool-a TOOL2 tool-b TOOL3 tool-c TOOL4 tool-d TOOL5 tool-e USER username_2@foo.com TOOLIN tool-e TOOL2 tool-f TOOL3 tool-c TOOL4 tool-d .... I need to take this file and generate a target XML file - <access> <managed> ... (3 Replies)
Discussion started by: jacki
3 Replies

10. UNIX for Dummies Questions & Answers

Script to generate text file from excel file

Hello, I have a excel file which has almost ten columns on the shared drive. I have to write a shell script to ftp that daily to unix server and then extract some columns from there and generate oracle standard text file. The columns should be in proper order and aligned properly, otherwise... (1 Reply)
Discussion started by: isingh786
1 Replies

Featured Tech Videos