Python (startswith) reg expression


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Python (startswith) reg expression
# 8  
Old 05-15-2009
Only rows that begins with digit character!

001;test;test;test
123;test;test;test test;test;test
000;;test;test;test
# 9  
Old 05-15-2009
just use the opposite condition
Code:
...
    if not items[0].isdigit():
...

this statement : data[n-1]= data[n-1]+items , means to append to previous. If you check for digit, then once digit is found , it will append previous line. Obviously, this is wrong. therefore you should check for NOT digit in the first character. make sense? you should also study about Python if you are going to use it. See the Python docs.
# 10  
Old 05-15-2009
I have already tried but the command display the follow error message!

#!/usr/bin/env python

import sys

data=open(sys.argv[1]).read().split("\n")
for n,items in enumerate(data):
if not items[0].isdigit():
data[n-1]= data[n-1]+items
data.pop(n)

print '\n'.join(data)



./python.py text

Traceback (most recent call last):
File "./reconf-rowdata-other-char.py", line 11, in ?
if not items[0].isdigit():
IndexError: string index out of range
# 11  
Old 05-15-2009
you did not do what i said. put your code in code tags!
name your script with a different name. eg myscript.py , and not python.py
here's mine and it works for me
Code:
#!/usr/bin/env python
data=open(sys.argv[1]).read().split("\n")
data=[i for i in data if i != ''] ## add this to get rid of all blank lines
for n,items in enumerate(data):
    if not items[0].isdigit(): # check first character is a digit, ie equivalent to [0-9]
        data[n-1]= data[n-1]+items
        data.pop(n)
print '\n'.join(data)

output:
Code:
# more file
001;test;test;test
123;test;test;test
test;test;test
000;;test;test;test

# ./test.py file
001;test;test;test
123;test;test;testtest;test;test
000;;test;test;test

most probably, you have blank lines in your file

Last edited by ghostdog74; 05-15-2009 at 12:46 PM..
# 12  
Old 05-15-2009
I believe you but I can't make work out!

$ ./test.py text
Traceback (most recent call last):
File "./test.py", line 5, in ?
if not items[0].isdigit(): # check first character is a digit, ie equivalent to [0-9]
IndexError: string index out of range

$ cat test.py
#!/usr/bin/env python
import sys
data=open(sys.argv[1]).read().split("\n")
for n,items in enumerate(data):
if not items[0].isdigit(): # check first character is a digit, ie equivalent to [0-9]
data[n-1]= data[n-1]+items
data.pop(n)
print '\n'.join(data)

$ python -V
Python 2.4.3
# 13  
Old 05-15-2009
cat text

001;test;test;test;
123;test;test;test
;test;test;test
000;;test;test;test;
# 14  
Old 05-15-2009
see my code again. i added something. and for the last time, put your code in code tags!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

REG Expression

Need your help in creating regular expression for particular set. let say I have given two dates 20130623 to 20140625. I need to create regular for the dates which fall in between above two dates. (4 Replies)
Discussion started by: gvkumar25
4 Replies

2. Shell Programming and Scripting

Confusion with Reg expression

I want to make a REG Expression to validate the directory. my dirsample is below: /abc/abc/abc abc/abc/abc abc/abc/abc/ /abc/a bc/abc /a bc/abc/abc /abc/abc/a bc / abc/abc/abc /abc/ abc/abc /abc/.abc /.abc/abc / // /abc /.abc And my code is below: grep -E '^\/(+\/?)+$' dirsample (4 Replies)
Discussion started by: franksunnn
4 Replies

3. Shell Programming and Scripting

reg expression in perl

how to uniquely match each of the words seperated by / in perl ${REP_PATH}/FUNCTIONAL/wide1c_1.0V/max/qor.rpt https://www.unix.com/images/misc/progress.gif (5 Replies)
Discussion started by: dll_fpga
5 Replies

4. Shell Programming and Scripting

reg expression in perl

./GEN_SCR.pl -f ${REP_PATH}/FUNCTIONAL/wide1c_1.0V/max/qor.rpt -o ${REP_PATH}/FUNCTIONAL/GEN2_wide1c_1.0V_max.csv where GEN_SCR.pl is as below...i need to check whether max or min is coming in the argument to the script ...how to do this? ${REP_PATH}/FUNCTIONAL/wide1c_1.0V/max/qor.rpt ... (0 Replies)
Discussion started by: dll_fpga
0 Replies

5. Shell Programming and Scripting

Reg expression

Please let me understand this reg expression (\s+')(.*)('\s+)(.)(.*)(\/.*)/) i have doubt in the below 2.I'm not understanding why back-tick used? (\s+') and ('\s+) (2 Replies)
Discussion started by: dll_fpga
2 Replies

6. Shell Programming and Scripting

awk reg expression

Hello, I have thousand of messages (HL7), I want to use awk to extract only the ones that have a particular value in pv1.18 Each record in the file is the whole HL7 message, ie. when I print $0 I get the whole message MSH EVN PID etc. ,there is an x0d between the segments. I would like to use a... (3 Replies)
Discussion started by: gio001
3 Replies

7. Shell Programming and Scripting

Reg expression For

HI system.sysUpTime.0 : Timeticks: (1519411311) 175 days, 20:35:13.11 From the above output i need only 175days in a perl script.. Please Help (2 Replies)
Discussion started by: Harikrishna
2 Replies

8. Shell Programming and Scripting

perl reg expression

I have regular expression like this ( replace + with \+) ($mod_server) = ($server =~ /\+/\\+/g); the above is failing with error . what's wrong with it . Thanks (1 Reply)
Discussion started by: talashil
1 Replies

9. UNIX for Dummies Questions & Answers

Help with Reg. Expression

I need help with this: Can any one tell me what does these below mean: 1. "\(.\).*") != '/' 2. sed 's+^\./++;s+/.*++' 3. sed "s+${f}/+ + Thanks in advance (7 Replies)
Discussion started by: moe2266
7 Replies

10. Shell Programming and Scripting

Awk - Using a Shell Variable in the Reg Expression

Hi all, I have a shell variable $test1 that holds a value derived from some other processing. What I need to do is use that $test1 as the input to a awk regular expression: nawk -F"," -v tester=$test1 ' /tester/{ print $0 } ' $inputFile So what I have is tester... (6 Replies)
Discussion started by: not4google
6 Replies
Login or Register to Ask a Question