![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Newbie
Join Date: Jul 2005
Posts: 1
Rep Power: 0
![]() |
Please Help Newbie
Hello,
I have a log file, which I want to use as a word list. Problem is, there's no space between the words and the numbers to which the words are linked. For instance, I need to change called20:12,18 to called 20:12,18 by adding a space between the words and the numbers. sed's info file tells me that replace-strings get interpreted litterally on the right hand side. Thus, as info telle me, sed s/[a-zA-Z][0-9]/[a-z][A-Z]\ \[0-9]/g testfile produces "calle[a-z][A-Z] [0-9]0:12,18" Can someone tell me how I can search my file for all instances of letter-then-number, and replace them with letter-then-space-then-number? Thank you very much. |
|
|
|
|
|
#2 |
|
Resident Grouch
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2005
Posts: 6,453
Rep Power: 10
![]() |
Just search for a subpattern containing one or more alphabetics, such as ([a-zA-Z]+), then replace it with the subpattern plus a space. That presumes that your example always represents your data.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code. Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers |
|
|
|
|
|
#3 |
|
Resident Grouch
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2005
Posts: 6,453
Rep Power: 10
![]() |
Here's a copy of a CLI screen
C:\DOCUME~1\David\Desktop>type filter.txt s/\([a-zA-Z]*\)/\1 / C:\DOCUME~1\David\Desktop>type sedtest.txt caller20:20:20 called1:30:03 C:\DOCUME~1\David\Desktop>ssed -f filter.txt sedtest.txt > results.txt C:\DOCUME~1\David\Desktop>type results.txt caller 20:20:20 called 1:30:03 C:\DOCUME~1\David\Desktop>
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code. Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers |
|
|
|
|
|
#4 |
|
I eat cake for breakfast.
![]() ![]() ![]() ![]() Join Date: Jul 2004
Location: In my box.
Posts: 4,434
Rep Power: 9
![]() |
Just to clarify:
When you want to keep certain sections of the document you're running the regex on, you enclose them in parentheses (brackets - ( and ) ), as DaWei shows. You then use these by using "\1", "\2" etc. in the replace string. |
|
|
|
|
|
#5 |
|
Hobbyist Programmer
Join Date: Jun 2005
Location: New Mexico
Posts: 228
Rep Power: 4
![]() |
Well, there's tr as well.
cat filename | tr -s ';' ' ' | tr -s ',' ' ' > newfilename |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|