zoukankan      html  css  js  c++  java
  • shell之使用cut切割文本文件

    我们知道可以通过工具grep或egrep按行筛选记录,这里我们可以通过cut工具对文本按列进行切分,它可以指定定界符,linux下制表符是默认的定界符。

    #cut -f 2,3 textfile

    这个命令可以显示textfile文件的第2、3列。

    例如:有文件如下:

    # cat dept

    10 ACCOUNTING NEW YORK

    20 RESEARCH DALLAS

    30 SALES CHICAGO

    40 OPERATIONS BOSTON

    1)# cut -f 2,3 dept

    ACCOUNTING NEW YORK

    RESEARCH DALLAS

    SALES CHICAGO

    OPERATIONS BOSTON

    2)# cut -s -f 2,3 dept

    ACCOUNTING NEW YORK

    RESEARCH DALLAS

    SALES CHICAGO

    OPERATIONS BOSTON

    其中-s选项可以过滤掉没有按照指定定界符的行。

    3)# cut -s -f1 --complement dept

    ACCOUNTING NEW YORK

    RESEARCH DALLAS

    SALES CHICAGO

    OPERATIONS BOSTON

    使用-f1 --complement选项输出结果不显示第1行。

    4)# cut -s -d":" -f1,2,3,4,5,6,7  dept

    root:x:0:0:root:/root:/bin/bash

    spark:x:481:480:Spark:/var/lib/spark:/sbin/nologin

    hue:x:480:479:Hue:/usr/lib/hue:/bin/false

    对于不是按照标准定界符分隔的文件,可以使用-d参数指定定界符。

    通过指定字段、字符、字节范围进行切割:

    此种方法依赖于下表中的内容:

    参数

    说明

    N-

    N-M

    -M

    从第n个字符、字节、字段开始至行尾

    从第n个字符、字节、字段至第m(包含)字符、字节、字段

    从第1个字符、字节、字段开始至第m个字符、字节、字段

    -b

    -c

    -f

    表示字节

    表示字符

    表示字段

    --output-delimiter

    指定输出定界符

    例如:

    # cat cuttext

    qwertyuiopasdfghjkl

    qwertyuiopasdfghjkl

    Qwertyuiopasdfghjkl

    1)# cut -c1-5,6-10 cuttext --output-delimiter ","

    qwert,yuiop

    qwert,yuiop

    qwert,yuiop

  • 相关阅读:
    LeetCode对撞指针汇总
    167. Two Sum II
    215. Kth Largest Element in an Array
    2018Action Recognition from Skeleton Data via Analogical Generalization over Qualitative Representations
    题解 Educational Codeforces Round 84 (Rated for Div. 2) (CF1327)
    题解 JZPKIL
    题解 八省联考2018 / 九省联考2018
    题解 六省联考2017
    题解 Codeforces Round #621 (Div. 1 + Div. 2) (CF1307)
    题解Codeforces Round #620 (Div. 2)
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/7027999.html
Copyright © 2011-2022 走看看