Visit The New, Modern Unix Linux Community


Shell Scripting help


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Shell Scripting help
# 1  
Shell Scripting help

i have a text file and having many lines and i need to fetch few details and paste it to another file in CSV format.

I am using this command to fetch the values.

Code:
grep 'pName="vin'  temp.txt | sed -n 's:.*<mis>\(.*\)</mis>.*<seg>\(.*\)</seg>.*:\1\,\2:p'

and getting output as this

Code:
11111111,Pit
333333,zit

but how can i get dateTime in ouput as well (as mentioned in below format).

For Ex:
temp.txt (file)
Code:
<l:ev dateTime="2019-06-14 08:30" pName="vin"> <mis>11111111</mis><seg>Pit</seg> </l:ev>
<l:ev dateTime="2019-06-14 09:30" pName="sin"> <mis>222222</mis><seg>sit</seg> </l:ev>
<l:ev dateTime="2019-06-14 10:30" pName="vin"> <mis>333333</mis><seg>zit</seg> </l:ev>

output expected:
Code:
2019-06-14 08:30,11111111,Pit
2019-06-14 10:30,333333,zit


Also, one more thing if file is changed and it have contain like this(<val:mis>) as mentioned below then using above command is not working.

Code:
<l:ev dateTime="2019-06-14 08:30" pName="vin"> <val:mis>11111111</val:mis><val:seg>Pit</val:seg> </l:ev>


Last edited by vgersh99; 06-18-2019 at 11:38 AM.. Reason: Code tags, please!
# 2  
how about a brute-force approach - YMMV:
Code:
 awk -F'["<>]' '$5=="vin" {print $3, $9, $13}' OFS=, myFile.txt

# 3  
Or an adaptation to the sed command:
Code:
sed -n 's:.*dateTime="\([^"]*\).*<mis>\(.*\)</mis>.*<seg>\(.*\)</seg>.*:\1\,\2,\3:p'

# 4  
Thanks
# 5  
Different approach, including your val: case:
Code:
sed -n 's/" pName="vin">//; T; s/^.*dateTime="//; s/<[^>]*>/,/g; s/[ ,]\{2,\}/,/gp' file
2019-06-14 08:30,11111111,Pit,
2019-06-14 10:30,333333,zit,
2019-06-14 08:30,11111111,Pit,

# 6  
Quote:
Originally Posted by vgersh99
how about a brute-force approach - YMMV:
Code:
 awk -F'["<>]' '$5=="vin" {print $3, $9, $13}' OFS=, myFile.txt


Thanks for this.......Can use AWK but sometimes for few lines sequence may change or an extra element might get added that may cause the issue with the expected output.

--- Post updated at 05:41 PM ---

Quote:
Originally Posted by vgersh99
how about a brute-force approach - YMMV:
Code:
 awk -F'["<>]' '$5=="vin" {print $3, $9, $13}' OFS=, myFile.txt

Quote:
Originally Posted by Scrutinizer
Or an adaptation to the sed command:
Code:
sed -n 's:.*dateTime="\([^"]*\).*<mis>\(.*\)</mis>.*<seg>\(.*\)</seg>.*:\1\,\2,\3:p'


Thanks for this ......but this is not working when val is added. For example if you file contains these:
Code:
<l:ev dateTime="2019-06-14 08:30" pName="vin"> <mis>11111111</mis><seg>Pit</seg> </l:ev>
<l:ev dateTime="2019-06-14 09:30" pName="vin"> <val:mis>222</val:mis><val:seg>sit</val:seg> </l:ev>
<l:ev dateTime="2019-06-14 09:30" pName="vin"> <nim:mis>222</nim:mis><nim:seg>sit</nim:seg> </l:ev>

Moderator's Comments:
Mod Comment edit by bakunin: i have added the forgotten CODE-tags for you, please use them yourself in the future. Thank you.

Last edited by bakunin; 06-18-2019 at 02:46 PM..
# 7  
Quote:
Originally Posted by nit42
Thanks for this ......but this is not working when val is added. For example if you file contains these:
Code:
<l:ev dateTime="2019-06-14 08:30" pName="vin"> <mis>11111111</mis><seg>Pit</seg> </l:ev>
<l:ev dateTime="2019-06-14 09:30" pName="vin"> <val:mis>222</val:mis><val:seg>sit</val:seg> </l:ev>
<l:ev dateTime="2019-06-14 09:30" pName="vin"> <nim:mis>222</nim:mis><nim:seg>sit</nim:seg> </l:ev>

Yes, it doesn't work, because your search string is "<mis>" and what the file contains is "<val:mis>" (and "<seg>" instead of "<val:seg>", etc.). It is rather obvious that you find only what you search for, nothing else. No?

But isn't it obvious how the command above must be changed to reflect the changes in your input? I am convinced that a brilliant young man like you can do that, can't you? Just show us what you tried.

bakunin

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #236
Difficulty: Easy
The ARPANET was operated by the AT&T during the two decades of its existence, until 1990.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

2. Shell Programming and Scripting

help me in Shell Scripting

Hi there please have a look at the code..i want to create Using a named pipe. Run a find in the background starting in the working directory While this is happening wait for input from the user to ask him which file to find. If the user does not enter any data in 10 seconds ask the user again.... (1 Reply)
Discussion started by: kattak1511
1 Replies

3. Shell Programming and Scripting

Shell scripting

Hi, if in a network there are lots of PCs connected with either windows or linux as operating system.Then what will be the shell script for the same and also if the PC has linux in it then we have to find if it is occupied or unoccupied. If the PC has windows in it then we have to find if it is... (6 Replies)
Discussion started by: akansha singh
6 Replies

4. UNIX for Dummies Questions & Answers

Shell Scripting

Hey I have a data in the file named as outputFile.txt. The data is in the format 123456,12345678912345,400,09/09/09,INACTIVE. I want this output without commas ie 12345612345678912345400090909INACTIVE. Please tell me what to do and clear explain all the terms, as I am new to it. (6 Replies)
Discussion started by: sampandey31
6 Replies

5. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

6. What is on Your Mind?

Shell Scripting vs Perl scripting

Gents, I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
Discussion started by: Pouchie1
2 Replies

7. Android

Android Scripting Environment: Shell Scripting and Android

I just upgraded to Android 2.2 from 2.1. The GPS issue that was troublesome in 2.1 seems to have been fixed. Some of web browsing seems faster, but it could just be my connection is better today ;) Flash works in some browsers but not very good and it is too slow for Flash apps designed for... (0 Replies)
Discussion started by: Neo
0 Replies

8. What is on Your Mind?

Shell scripting vs Perl scripting

Hi all, I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first. Can you please help me determine which one to... (14 Replies)
Discussion started by: Pouchie1
14 Replies

9. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies

Featured Tech Videos