![테이블의 이메일에서 접두사를 제거하는 방법은 무엇입니까?](https://linux55.com/image/54000/%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98%20%EC%9D%B4%EB%A9%94%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%A0%91%EB%91%90%EC%82%AC%EB%A5%BC%20%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
입력은 다음과 같습니다.
$ 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#'