Shell Scripting help


Login or Register for Dates, Times and to Reply

 
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 12:38 PM.. 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 03: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
Login or Register for Dates, Times and to Reply

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

Test Your Knowledge in Computers #453
Difficulty: Easy
The TiVo digital video recorder is based on the Linux kernel and GNU software.
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. 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

3. Shell Programming and Scripting

Shell scripting

Sir, I am new to shell scripting. I request you to help me for this. I have the data file in the given format. In the given file, 3 structures are there starting with’Contig’and each structure having substructures starting with’-‘ like -150.90, -150.70, -149.70. One substructure contains range of... (1 Reply)
Discussion started by: kswapnadevi
1 Replies

4. 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

5. 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

6. 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

7. Shell Programming and Scripting

Shell scripting

Hi All, I am not able to see the output of $1 variable as I am passing in below script:-- #!/bin/bash -xv echo "Enter ur password" + echo 'Enter ur password' Enter ur password read pw + read pw dbaguest echo "Enter username" + echo 'Enter username' Enter username read usrnm + read... (5 Replies)
Discussion started by: manish_1678
5 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