• (九)字符处理命令


    1:cut [选项] 文件名

    选项:

    -f 列号:       提取第几列

    -d 分隔符:     按照指定分隔符分割列

    -c 字符范围:   不依赖分隔符来区分列,而是通过字符范围(行首为 0)来进行字段提取。“n-”表示从第 n 个字符到行尾;“n-m”从第 n 个字符到第 m个字符;“-m”表示从第 1 个字符到第 m 个字符。cut 命令的默认分隔符是制表符,也就是“tab”键。

     

    3:sed

    sed 主要是用来将数据进行选取、替换、删除、新增的命令.

    直接用命令对文件进行修改并不是vi进行编辑。

        -n:  一般 sed 命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过 sed 命令处理的行输出到屏幕。

    -e:  允许对输入数据应用多条 sed 命令编辑。

    -f 脚本文件名: 从 sed 脚本中读入 sed 操作。和 awk 命令的-f 非常类似。

    -r:  在 sed 中支持扩展正则表达式。

    -i:  用 sed 的修改结果直接修改读取数据的文件,而不是由屏幕输出动作:

    a :  追加,在当前行后添加一行或多行。添加多行时,除最后 一行外,每行末尾需要用“”代表数据未完结。

    c :  行替换,用 c 后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“”代表数据未完结。

    i :  插入,在当期行前插入一行或多行。插入多行时,除最后 一行外,每行末尾需要用“”代表数据未完结。

    d: 删除,删除指定的

    p: 打印,输出指定的行。

    s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范围 s/旧字串/新字串/g”(和 vim 中的替换格式类似)

    sed 所做的修改并不会直接改变文件的内容(如果是用管道符接收的命令的输出,这种情况连文件都没有),而是把修改结果只显示到屏幕上,除非使用“-i”选项才会直接修改文件。

     

    例子:

    (1) 行操作

    sed '2p' student.txt  屏幕显示2行数据

    (2)只显示-n 只显示第二行

    sed -n '2p' student.txt

    (3)删除2,4行数据

    sed '2,4d' student.txt

    (4)在第二行后面添加指定的字符串

    sed '2a  ddddddd' student.txt

    (1) 在第二行前面添加制定的字符串

    sed "2i heeeeeee"  student.txt

    (2) 行首替换为#

    sed '4s/^/#/g' student.txt

     

    3:字符处理命令

    (1) 排序 sort命令

    -f:  忽略大小写

    -b:  忽略每行前面的空白部分

    -n:  以数值型进行排序,默认使用字符串型排序  //数值排序

    -r:  反向排序

    -u:  删除重复行。就是 uniq 命令

    -t:  指定分隔符,默认是分隔符是制表符

    -k n[,m]: 按照指定的字段范围排序。从第 n 字段开始,m 字段结束(默认到行尾)

    sort -n  -r student.txt  //按照字符数值降序排列

    sort -n -t ":" -k 3,3 /etc/passwd

    当然“-k”选项可以直接使用“-k 3”,代表从第三字段到行尾都排序(第一个字符先排序,如果一致,第二个字符再排序,知道行尾)。

    (2) uniq去除重复行

     

    (3) 统计命令 wc

       wc –l 统计行数

  • 相关阅读:
    CodeForces 687B Remainders Game
    CodeForces 689D Friends and Subsequences
    CSU 1810 Reverse
    生成树收录
    吃奶酪
    带逆向思维的并查集
    中位数定理
    种类并查集(关押犯人)
    带权并查集
    分层图
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/11668813.html
Copyright © 2020-2023  润新知