User to user discussion and support for UltraEdit, UEStudio, UltraCompare, and other IDM applications.

Find, replace, find in files, replace in files, regular expressions
6 posts Page 1 of 1
I work with large files that have a fixed length for each row of 50 characters. I commonly have files come to me where most of the file is good with the rows at lengths of 50 and a few rows either under or over 50. I would like to find and delete all the rows equal to 50 which would leave all the bad rows not equal to 50. Is there a way to do this?

I think if I could find and remove all rows with a line feed in row 51 that would work too.

I'm using version 21.10.0.1032
Search->Replace

Find what: ^.{50}\R
Replace with: leave empty
Check Regular expressions and choose Perl
Check Replace all from top of file
It's impossible to lead us astray for we don't care even to choose the way.
rmoran12 please note that last line in file must also have a line termination for this regular expression replace. Otherwise the string at end of file always remains in file even with having exactly 50 characters.

By the way: It would be also possible to just search for lines with less or more than 50 characters to fix them manually, e.g. concatenate the too short lines because of line termination within a value which is most likely the reason for the too short lines.

UltraEdit supports also just hiding all lines with exactly 50 characters and displaying only the lines with less or more than 50 characters for manual correction and then you can unhide all hidden lines with exactly 50 characters and continue processing the file.
Best regards from Austria
Mofi wrote: UltraEdit supports also just hiding all lines with exactly 50 characters ....

Would you like to explain how to please?
It's impossible to lead us astray for we don't care even to choose the way.
How to hide all lines with exactly 50 characters?

Let me explain that on a simple sample file with following content:

Code: Select all
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
0123456789012345678901234567890234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789x
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789

Open the regular Find dialog and enter as search string ^.{50}$, check the option Regular expressions and select Perl.

Current file must be selected for option In. The check box options Match whole word, Match case Highlight all items found, List lines containing string and In column are all not checked.

But checked must be the option Filter lines and selected next must be Hide.

On running the find with clicking on button Next all lines are hidden containing a matching string. In this case with this Perl regular expression string it means all lines are hidden having exactly 50 characters.

So the resulting display is:

--- Lines are hidden ---
0123456789012345678901234567890234567890123456789
01234567890123456789012345678901234567890123456789x

And there is the symbol [+] left to each of those 3 lines indicating that multiple lines are folded to a single line.

The line number displayed in status bar or on left side if display of line numbers is enabled indicates where the too short and the too long line exist in the file, line 18 is too short and line 30 is too long.
Best regards from Austria
Dear Mofi!
THANK YOU SO MUCH for this answer, as usual complete and very useful.
It's impossible to lead us astray for we don't care even to choose the way.
6 posts Page 1 of 1
cron