7

3 つの列 (抜粋) を持つタブ区切りファイルがあります。

AC147602.5_FG004    IPR000146   Fructose-1,6-bisphosphatase class 1/Sedoheputulose-1,7-bisphosphatase
AC147602.5_FG004    IPR023079   Sedoheptulose-1,7-bisphosphatase
AC148152.3_FG001    IPR002110   Ankyrin repeat
AC148152.3_FG001    IPR026961   PGG domain

そして、bashを使用してこれを取得したいと思います:

AC147602.5_FG004 IPR000146 Fructose-1,6-bisphosphatase class 1/Sedoheputulose-1,7-bisphosphatase IPR023079 Sedoheptulose-1,7-bisphosphatase
AC148152.3_FG001 IPR023079 Sedoheptulose-1,7-bisphosphatase IPR002110   Ankyrin repeat IPR026961    PGG domain

したがって、最初の列の ID が複数の行で同じである場合、各 ID に対して 1 つの行が生成され、行の他のすべての部分が結合されます。例では、2 行のファイルが表示されます。

4

4 に答える 4

9

このワンライナーを試してみてください:

 awk -F'\t' -v OFS='\t' '{x=$1;$1="";a[x]=a[x]$0}END{for(x in a)print x,a[x]}' file
于 2013-11-06T22:37:05.873 に答える