改变文件的排列

时间:2014-04-19 15:21:13

标签: awk sed

我有一个如下所示的文件

>1BA9
394
395
396
397    
>1CA3
438
439
440
441
442  

我想像这样安排上面的文件

1BA9  394  397
1CA3  438  442

使用awk或sed怎么可能?

2 个答案:

答案 0 :(得分:1)

awk -v RS='>' 'NR>1{print $1, $2, $NF}' file
  • 更改默认记录分隔符。
  • 打印第一个,第二个和最后一个字段。
  • 由于您的行以分隔符开头,因此请使用NR>1跳过第一个空记录。

答案 1 :(得分:0)

这可能适合你(GNU sed):

sed '/^>/!{H;$!d};x;s/\n\([^\n]*\)\n.*\n/ \1 /p;x;h;d' file

这将多行序列存储在从>开始的任何行到保留空间中的下一个此类序列或文件结尾。然后删除不需要的部分并打印出结果。