Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 417
  • Last Modified:

Search batch file and replace

I have a list of email addresses (black list) that I want to parse and remove everything except the domain name this is a small sample of the list
n.hardy@konnect-force.com
nancy@justleadgen.com
natural.d@tanya-tech.com
natural.n@realtoryou.com

want to end up with just
konnect-force.com
justleadgen.com
tanya-tech.com
realtoryou.com

The trick is that the number of characters before the @ varies greatly so how can I solve this please. Thanks. Prefer a batch file solution but VB or powershell acceptable too.
0
Lionel MM
Asked:
Lionel MM
  • 5
  • 3
1 Solution
 
Steve KnightIT ConsultancyCommented:
You can split at the @ using a for command:

@echo off
(for /f "tokens=2 delims=@" %%d in ('type yourlist.txt') do echo %%d)>newlist.txt

Steve
0
 
Steve KnightIT ConsultancyCommented:
Or if you want it de-duped too, try something like this... gets all the domain names, sorts them into order into newlist.txt then runs down that line by line and outputs any unique lines.

Steve

@echo off
setlocal enabledelayedexpansion
(for /f "tokens=2 delims=@" %%d in ('type yourlist.txt') do echo %%d) | sort >newlist.txt

set line=
(for /f %%d in ('type newlist.txt') do (
  if not "!line!"=="%%~d" echo %%~d
  set line=%%~d
)) > deduped.txt

Open in new window

0
 
Lionel MMSmall Business IT ConsultantAuthor Commented:
WOW great that's more than I asked for so thanks--however when I run it all that happens is that the the email address list open in notepad and when/if I close it another blank one named newlist.txt opens up. This is what I am using
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=2 delims=@" %%d in ('D:\Data\SPAM.txt') do echo %%d) | sort >D:\Data\newlist.txt

set line=
(for /f %%d in ('D:\Data\NewList.txt') do (
  if not "!line!"=="%%~d" echo %%~d
  set line=%%~d
)) > D:\Data\deduped.txt
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
Steve KnightIT ConsultancyCommented:
try the word "type" before the path as in example above... I prefer that way to just listing the path (which would be without the ' ' around it.

Steve
0
 
Lionel MMSmall Business IT ConsultantAuthor Commented:
ok that does something but this is what I end up with in C:\Data\deduped.txt
C:\Utils>(
if not "!line!" == "2cjesus.com" echo 2cjesus.com  
 set line=2cjesus.com
)
2cjesus.com

C:\Utils>(
if not "!line!" == "acumatica.com" echo acumatica.com  
 set line=acumatica.com
)
acumatica.com

C:\Utils>(
if not "!line!" == "advhpc.com" echo advhpc.com  
 set line=advhpc.com
)
advhpc.com
deduped.txt
0
 
Steve KnightIT ConsultancyCommented:
Looks like you don't have @echo off ?

Steve
0
 
Lionel MMSmall Business IT ConsultantAuthor Commented:
Thanks
0
 
Steve KnightIT ConsultancyCommented:
np, you got it working then I presume.

Steve
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now