擅长:python、mysql、java
<p>一种简单的bash方法:</p>
<pre><code>csplit -s -z -f columns sample.txt '/^SRR51/' '{*}'
paste columns* > pivot.txt
rm columns*
</code></pre>
<p>这将使用<a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/csplit.html" rel="nofollow noreferrer">^{<cd1>}</a>根据^SRR51模式将文件拆分为单个文件,然后<a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/paste.html" rel="nofollow noreferrer">^{<cd2>}</a>所有“列”用^{<cd3>分隔。最后,rm删除临时列文件</p>
<p>如果您坚持使用bsd样式的csplit,请使用:</p>
<pre><code>csplit -s -f columns sample.txt '%^SRR51%' '/^SRR51/' "{$( expr $(grep -c '^SRR51') + 1)}"
</code></pre>
<p>如果您想让它们“对齐”,请使用<code>column -t</code>,但这不是POSIX</p>