在bash中调整列填充

时间:2018-04-13 15:40:48

标签: bash

知道如何将输出设为以下内容?

输入:

     1 GATTT
     2 ATCGT

期望的输出:

1      GATTT
2      ATCGT

我尝试了以下内容并且无效

cut -c7,1-6,8-

3 个答案:

答案 0 :(得分:1)

$ awk -v OFS='\t' '{print $1,$2}' input

1       GATTT
2       ATCGT

$ awk '{print $1 "\t" $2}' input

答案 1 :(得分:0)

也可以使用SED:

sed  "s/[:digit:]* .*/    &/g" input

1    GATTT
2    ATCGT

答案 2 :(得分:0)

我假设原始空白是基于你的剪切命令的6个空格。使用简单的bash命令解决这个问题的最简单方法是在输出上使用选项卡进行分离。

echo "      1 GATTT" | cut -d ' ' -f 7- | tr ' ' '\t'

cut命令使分隔符成为空格字符,并从字段7开始。然后tr(translate)命令将剩余空间转换为选项卡。