代码之家  ›  专栏  ›  技术社区  ›  sid_com

如何将文件格式化为4列?

  •  1
  • sid_com  · 技术社区  · 14 年前
    cat file  
    01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
    

    我试过了

    column -c 4 file 
    

    得到一个有4列的输出,但它不起作用——我只得到和输入相同的结果。
    我是否误解了专栏手册?

    第二个问题:S标志的参数应该采用什么格式?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Dennis Williamson    14 年前

    尝试一下:

    fold -w 12 file
    

    数字12是数据列数*一列中的字符数(两位数+一个空格)。这个 -w 选项用于根据字符列指定屏幕宽度。

    这个 column 此命令不起作用,因为它用于格式化报纸样式的列。

    这接近你想要的工作方式:

    sed 's/ /\n/g' file | column -xc 35
    

    “35”有点武断,但在这种情况下,32到39之间的任何值都有效。它与字段的宽度(2个字符小于制表位的宽度)、每行所需的字段数和制表位的宽度(8个字符)有关。所以,基本上,8*4等于32。

    这是一个演示 -s 选项(用于 -t ):

    $ echo -e "a;b|c\naaaaa;bbbbb|ccccc"|column -t -s ';|'
    a      b      c
    aaaaa  bbbbb  ccccc
    

    不使用 ,输出如下:

    $ echo -e "a;b|c\naaaaa;bbbbb|ccccc"
    a;b|c
    aaaaa;bbbbb|ccccc
    
        2
  •  1
  •   tokland    14 年前

    让我们猜猜你想要:

    01 02 03 04
    05 06 07 08
    09 10 11 12
    13 14 15 16
    

    在这种情况下:

    $ xargs -n4 < file