我有这个文件
文件.txt
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="90e5fefbfeffe7fed0fdf1f9fcbef3fffd" rel="noreferrer noopener nofollow">[email protected]</a>||<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c6b3a8ada8a9b1a886aba7afaae8a5a9ab" rel="noreferrer noopener nofollow">[email protected]</a>||
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="65100b0e0b0a120b2508040c09574b060a08" rel="noreferrer noopener nofollow">[email protected]</a>||<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d4a1babfbabba3ba94b9b5bdb8e6fab7bbb9" rel="noreferrer noopener nofollow">[email protected]</a>||
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e99c878287869e87a984888085dac78a8684" rel="noreferrer noopener nofollow">[email protected]</a>||<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="186d767376776f7658757971742b367b7775" rel="noreferrer noopener nofollow">[email protected]</a>||
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c5b0abaeabaab2ab85a8a4aca9f1eba6aaa8" rel="noreferrer noopener nofollow">[email protected]</a>||<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="592c373237362e3719343830356d773a3634" rel="noreferrer noopener nofollow">[email protected]</a>||
unknownpass
unknownpass2
unknownpass3
unknownpass4
如何使用 sed
命令获取此信息:
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aedbc0c5c0c1d9c0eec3cfc7c280cdc1c3" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass|<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="097c676267667e674964686065276a6664" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass|
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f3869d989d9c849db39e929a9fc1dd909c9e" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass2|<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c9bca7a2a7a6bea789a4a8a0a5fbe7aaa6a4" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass2|
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0f7a6164616078614f626e66633c216c6062" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass3|<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="22574c494c4d554c624f434b4e110c414d4f" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass3|
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d5a0bbbebbbaa2bb95b8b4bcb9e1fbb6bab8" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass4|<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3d48535653524a537d505c545109135e5250" rel="noreferrer noopener nofollow">[email protected]</a>|unknownpass4|
最佳答案
这可能对你有用(GNU sed):
sed ':a;N;/\n[^|\n]*$/!ba;s/||\([^|]*\)||\(\n.*\)*\n\(.*\)$/|\3|\1|\3|\2/;P;D' file
将文件的第一部分放入模式空间和其中一个替换项中,替换、打印并删除第一行,然后重复。
关于linux - 替换 sed 命令文本内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43105508/