美文网首页
linux-字符处理

linux-字符处理

作者: 小小白的jotter | 来源:发表于2021-05-13 16:27 被阅读0次

    linux-字符处理

    linux基础-字符处理

    linux管道命令(pipe)

    菜鸟教程

    1、管道 |

    管道是一种通信机制,通常用于进程间的通信,它表现出来的形式将前面每一个进程的输出直接作为下一个进程的输入。

    管道命令使用|作为界定符号。

    2、sort 排序

    参数 作用
    -b 忽略每行前面开始出的空格字符
    -f 排序时,将小写字母视为大写字母
    -n 按照字符串数值的大小排序,与-g区别为不转为浮点数
    -g 按通用数值排序,支持科学计数法
    -t 指定列的分割符,默认空白字符
    -k 指定按照第几列进行排序
    -r 降序排序,默认为升序
    -h 使用易读性数字(例如:2K 1G)
    -u 去除重复的行
    -o 将输出写入文件

    默认情况下,sort命令以第一列进行排序

    sort 1.txt
    cat 1.txt | sort
    
    image-20210430134344025

    反向排序

    sort -r 1.txt 
    cat 1.txt | sort -r
    
    images-20210430134846442

    按指定列进行排序,默认是空白符,也可以用 -t 指定分隔符

    cat 1.txt | sort -k 1
    cat 1.txt | sort -k 2
    cat 1.txt | sort -k 3
    
    image-20210430135926615

    第二列排序的时候可以加 -n 进行数值排序

    cat 1.txt | sort -n -k 2
    
    image-20210430140305091

    进行排序后,排序结果会显示在终端,但是原文件不会改变,可以用-o重定向或者另存。用 > 覆盖某个文件会失败,数据被清空,但是用 >> 追加可以

    cat 1.txt | sort -o 1.txt
    cat 1.txt | sort > 1.txt  #数据被清空
    cat 1.txt | sort >> 1.txt #数据追加到1文件
    
    image-20210430142403306

    3、uniq 删除重复内容

    为初学者提供的uniq命令教程及示例

    uniq 命令用于检查及删除文本文件中重复出现的行列。uniq命令只有在相邻的情况下才会删除重复的行,因此一般与 sort 命令结合使用,此外,该命令也可以检查文本文件中重复出现的行列,默认区分大小写。

    参数 作用
    -c 在每列旁边显示该行重复出现的次数
    -d 仅显示重复出现的行列
    -u 仅显示出一次,没有重复的行列
    -w 限制比较的字符;-w 4:比较文件中的前四个字符
    -s 忽略比较限定的字符;-s 4:忽略文件中每行的前四个字符
    输入文件 指定已排序好的文本文件,如果不指定此项,则从标准读取数据
    输出文件 指定输出的文件,如果不知道此选项,则将内容显示到标准输出设备(显示终端)

    准备一个文件

    image-20210430160954744
    sort 1.txt | uniq -c
    sort 1.txt | uniq -d
    sort 1.txt | uniq -u
    
    image-20210430161814245

    4、cut 截取文本

    参数 作用
    -b 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了-n
    -c 以字符为单位进行分割
    -d 自定义分隔符,默认为Tab
    -f 与-d一起使用,指定显示哪个区域
    -n 取消分割多字节字符。仅和-b标志一起使用

    准备一个文件

    image-20210510102253396

    以分割符指定分割某些特定的列

    cat 1.txt | cut -d ':' -f1
    cat 1.txt | cut -d ':' -f2
    cat 1.txt | cut -d ' ' -f1
    cat 1.txt | cut -d ' ' -f2
    
    image-20210510154030822

    5、tr文本转换

    Linux tr 命令用于转换或删除文件中的字符。

    tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

    语法:tr [OPTION]…SET1[SET2]

    参数 作用
    -c 反选设定字符。符合SET1的部分不做处理,不符合的剩余部分才进行转换
    -d 删除指令字符
    -s 缩减连续重复的字符成指定的单个字符
    -t 削减SET1指定范围,使之与SET2设定长度相等
    image-20210512145538546

    小写转换为大写

    cat 1.txt | tr '[a-z]' '[A-Z]' 
    cat 1.txt | tr '[:lower:]' '[:upper:]'
    
    image-20210512153645590

    删除字符

    cat 1.txt | tr -d ' '
    cat 1.txt | tr ':'
    
    image-20210512154953046

    6、使用paste做文本合并

    Linux paste 命令用于合并文件的列。

    paste 指令会把每个文件以列对列的方式,一列列地加以合并。

    参数 作用
    -d 用指定的间隔字符取代TABs字符
    -s 串列进行而非平行处理
    image-20210512163736466

    不加参数会默认以制表符为分界列对列合并

    paste 1.txt 2.txt
    
    image-20210512231645418

    -d可以设置以何种字符合并

    paste -d ' ' 1.txt 2.txt
    
    image-20210512231758471

    使用s参数时。单个文件会将该文件的多行数据合并成一行显示,多个文件会将各个文件单独合并成一行之后再行对行合并

    image-20210512232124798

    7、使用split分割大文件

    Linux split命令用于将一个文件分割成数个。

    该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。

    参数 作用
    -<行数> 指定每多少行切成一个小文件
    -b<字节> 指定每多少字节切成一个小文件
    -C<字节> 与参数“-b”相似,但是在切割时会尽量维持每行的完整性

    将根目录文件信息写入文件

    ll / | cat > 1.txt
    

    对上面的文件9行为一个文件进行分割

    split -9 1.txt split.txt
    
    image-20210513112556052

    以1k字节分割文件

    split -b 1k 1.txt split.txt
    
    image-20210513112855841

    8、wc命令-统计

    参数 作用
    -c 只显示Bytes数
    -l 显示行数
    -w 只显示字数

    不加参数会同时显示行数,字数,Bytes数,加上上述参数会单独显示其中一项

    wc 1.txt
    cat 1.txt | wc
    
    image-20210513132348040

    相关文章

      网友评论

          本文标题:linux-字符处理

          本文链接:https://www.haomeiwen.com/subject/nwfxjltx.html