Remove single @ on line from file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove single @ on line from file
# 1  
Old 05-16-2019
Remove single @ on line from file

Hi All,


So I have to remove all the @hostnames from a file, the problem is, there are instances where @ is used for other things... For example:


example text:
Code:
@This is some text in between some at signs@
@This is some more text@
This is a line that will contain a username and his/her email - me@somehost.com
This is another email line - you@anotherhost.com

I need to remove the text after the @somehost.com and @anotherhost.com but leave the two previous @ bla bla bla @ lines.


Heres what I have tried:


Code:
cat * |egrep -v '@.*@'|sed 's/@.*/@REDACTED/'

This kind of works, but I need all the lines intact


Code:
sed 's/@.*/@REDACTED/'

This just removed all the test after the @. This would be ok, but we would like to have the other lines if possible - we do just want to secure the file from having hostnames.



Not sure how to accomplish this. Any advice would be appreciated.


Thanks!
Joe
# 2  
Old 05-16-2019
Hi
Code:
sed 's/@\w\+\.\w\+/@REDACTED/g'

or
Code:
sed 's/@\w\+\.\w\+/@REDACTED/3'

This User Gave Thanks to nezabudka For This Post:
# 3  
Old 05-16-2019
for a non-GNU sed - might be harden a bit more/better:
Code:
sed 's/@[^ ][^ ]*[.][^ ][^ ]*/@REDACTED/g' myFile

This User Gave Thanks to vgersh99 For This Post:
# 4  
Old 05-16-2019
Thanks for your help! I used



Code:
sed 's/@\w\+\.\w\+/@REDACTED/g'

# 5  
Old 05-16-2019
Works with any Posix-compatible sed:
Code:
sed 's/\([[:alnum:]]\)@[[:alnum:]][-_.[:alnum:]]*/\1@REDACTED/g' file

By requiring a character before the @ it will not trigger on a @ at the beginning of the line.
This User Gave Thanks to MadeInGermany For This Post:
# 6  
Old 05-17-2019
And a lookbehind perlie you could try
Code:
perl -pe 's/(?<=\S@)\S+/\REDACTED/g' file


Last edited by Scrutinizer; 05-17-2019 at 11:09 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove single-line breaks only in document

Regarding copy/pasted text of copyright-free book from archive.org (link below), in attempt to expand single-line-break paragraph text (not section headings or paragraph breaks) to wider right margin, Justify or Wrap in LIbreOffice is not working, and Find/Replace the paragraph mark ($) wraps all... (2 Replies)
Discussion started by: p1ne
2 Replies

2. UNIX for Beginners Questions & Answers

Output to file print as single line, not separate line

example of problem: when I echo "$e" >> /home/cogiz/file.txt result prints to file as:AA BB CC I need it to save to file as this:AA BB CC I know it's probably something really simple but any help would be greatly appreciated. Thank You. Cogiz (7 Replies)
Discussion started by: cogiz
7 Replies

3. UNIX for Dummies Questions & Answers

To find and display the middle line in a file using single line command.

Hi all, How can i display the middle line of a file using a single line command? (6 Replies)
Discussion started by: Lakme Pemmaiah
6 Replies

4. UNIX for Dummies Questions & Answers

Remove multi line and single line comments

Hi, I am trying to remove multi line and single line comments like examples below I have tried this pattern. it works fine for single line comments and multi line comments in a single line only. but this fails when the comments are extended in multiple lines as shown in the comment 2 of... (3 Replies)
Discussion started by: ahmedwaseem2000
3 Replies

5. Shell Programming and Scripting

Formatting File having big single line into 95 Char Per Line

Hi All, I have 4 big files which contains one big line containing formatted character records, I need to format each file in such way that each File will have 95 Characters per line. Last line of each file will have newline character at end. Before:- File Name:- File1.dat 102 121340560... (10 Replies)
Discussion started by: lancesunny
10 Replies

6. Shell Programming and Scripting

awk concatenate every line of a file in a single line

I have several hundreds of tiny files which need to be concatenated into one single line and all those in a single file. Some files have several blank lines. Tried to use this script but failed on it. awk 'END { print r } r && !/^/ { print FILENAME, r; r = "" }{ r = r ? r $0 : $0 }' *.txt... (8 Replies)
Discussion started by: sdf
8 Replies

7. Shell Programming and Scripting

Need to remove multiple text from a single file

Dear all, I have a file which have let us say records from A-Z. Now I want to remove multiple letter from this file using single command.. let us say I want to remove A,F,K,Y,U,P,B,S,D. I can use grep -v command but for this case i need to rerun the file several time i wana avoid using... (3 Replies)
Discussion started by: jojo123
3 Replies

8. UNIX for Dummies Questions & Answers

how to remove mutilple enrty in a single line in unix

Hi, Below is a single line output. subsD,01 02 03 04 05 00 00 00 00 07 00 05,hlr,common,00000000 subsD,01 02 03 04 05 00 00 00 00 07 00 05,hlr,01,baoc|notActive|notInduced,activeAndOperative,notActive,notActive,noneDesignated,0,notActive|00|,notActive|00|,notActive|00|,notActive|00|30|,,... (4 Replies)
Discussion started by: kaprus
4 Replies

9. UNIX for Dummies Questions & Answers

Trying to remove single character from a line

Here is a sample code grep '903' -i user.txt | tail -2 | awk '{print $2}' | sed 's/B//g' the input file has data as such 903-xxx-xxxxB 903-xxx-xxxxB It is a dialer file i want to remove the "B" any help thanks (5 Replies)
Discussion started by: Iz3k34l
5 Replies

10. Programming

remove single-line comment

Does anyone knows how to write a program to remove single-line comment in C program? that means it don't read anything behind // (3 Replies)
Discussion started by: Icy002
3 Replies
Login or Register to Ask a Question