테이블의 이메일에서 접두사를 제거하는 방법은 무엇입니까?

테이블의 이메일에서 접두사를 제거하는 방법은 무엇입니까?

입력은 다음과 같습니다.

$ echo -e '<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>[email protected]</td></tr>\n<tr><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>[email protected]</td></tr>'
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>[email protected]</td></tr>
<tr><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>[email protected]</td></tr>

이것은 약간의 마법이 적용된 출력입니다!

$ echo -e '<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>[email protected]</td></tr>\n<tr><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>[email protected]</td></tr>' | SOMEMAGIC
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>example.com</td></tr>
<tr><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>example2.com</td></tr>

내 질문:"SOMEMAGIC" "@" 앞의 접두사와 "@" 자체를 제거하는 방법은 무엇입니까?

유일한 구분 기호는

"</td><td>"

XXX 및 YYY는 무엇이든 될 수 있습니다. 예를 들면 다음과 같습니다.[이메일 보호됨]" 또한:\

ps: 문제는 다음에서 접두사를 어떻게 제거할 수 있느냐는 것입니다.

[이메일 보호됨]

그래서 그것은 될 것입니다 :

example.com

이 테이블에는?

답변1

이것은 작동합니다:

echo '....' | sed 's,>[^<@]*@,>,g'

답변2

이 시도:

$ echo -e '<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>[email protected]</td></tr>\n<tr><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>[email protected]</td></tr>' | \
awk -F'</td><td>' 'gsub(/.*@/,"",$9)' OFS='</td><td>'
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>example.com</td></tr>
<tr><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>YYY</td><td>example2.com</td></tr>

</td><td>구분 기호는 행을 필드로 분할합니다 9. 이메일은 필드 번호입니다 . 원하는 출력을 얻으 려면 9th필드 앞의 모든 문자를 제거할 수 있습니다 .@9th

꼭 그럴 필요가 없다면 awk다음을 시도해 보세요 perl.

perl -pe 's#(.*)<td>.*@(.*)#$1<td>$2#'

관련 정보