zoukankan      html  css  js  c++  java
  • Linux中文件操作的命令

    下面是对linux命令中,对文件的操作的总结。

    1. cut

    cut命令用于显示每行从开头算起 num1 到 num2 的文字。即,截取指定字段并输出。

    cut [-bcdnf] [file]
    
    -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
    -c :以字符为单位进行分割。
    -d :自定义分隔符,默认为制表符。
    -f :与-d一起使用,指定显示哪个区域。
    -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除
    

    举例:

    cut -c-2 test (打印前2个字符)
    cut -c5- test (打印从第5个字符开始到结尾)
    cut -d " " -f 2 test (以空格为分隔符,打印第二列)
    

    2. split

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

    split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
    
    -<行数> : 指定每多少行切成一个小文件
    -b<字节> : 指定每多少字节切成一个小文件
    -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
    [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号
    

    举例:

    Split -5 test (会将原来的大文件"test"切割成多个以"x"开头的小文件。而在这些小文件中,每个文件都只有5行内容)
    

    3. join

    join命令用于将两个文件中,指定栏位内容相同的行连接起来。

    join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
    
    -a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
    -e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
    -i或--igore-case 比较栏位内容时,忽略大小写的差异。
    -o<格式> 按照指定的格式来显示结果。
    -t<字符> 使用栏位的分隔字符。
    -v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
    -j FIELD :等同于 -1 FIELD -2 FIELD,-j指定一个域作为匹配字段
    -1<栏位> 连接[文件1]指定的栏位。
    -2<栏位> 连接[文件2]指定的栏位。
    

    举例:

    join test1 test2 (默认比较两个文件,将两个文件中第一行的内容相同的行连接起来)
    join –a1 test1 test2 (左连接,显示左边文件中的所有记录,右边文件中没有匹配的显示空白。)
    join –a2 test1 test2 (右连接,显示右边文件中的所有记录,左边文件中没有匹配的显示空白。)
    join –a1 –a2 test1 test2 (全连接,显示左边和右边所有记录)
    

    4. paste

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

    paste [-s][-d <间隔字符>][--help][--version][文件...]
    
    -d<间隔字符>或--delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
    -s或--serial  串列进行而非平行处理。
    

    举例:

    paste –d: test1 test2 (合并2个文件,并以:为分隔符进行连接)
    

    5. uniq

    uniq命令用于检查及删除文本文件中重复出现的行列。

    uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
    
    -c或--count 在每列旁边显示该行重复出现的次数。
    -d或--repeated 仅显示重复出现的行列。
    -u或--unique 仅显示出一次的行列。
    -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
    -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
    -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
    [输入文件] 指定已排序好的文本文件。
    [输出文件] 指定输出的文件。
    

    举例:

    uniq一般需要配合sort使用,对已排序的文件进行操作。如:
    
    对已排序的文件,删除重复行;
    sort test|uniq
    
    对已排序的文件,仅显示重复出现的行(仅出现一次的行);
    sort test|uniq –d(-u)
    
    对已排序的文件,在每列前显示该行重复次数,并根据重复次数再次排序;
    sort test|uniq –c|sort -r
    

    6. sort

    sort命令用于将文本文件内容加以排序。

    sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
    
    -b 忽略每行前面开始出的空格字符。
    -c 检查文件是否已经按照顺序排序。
    -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
    -f 排序时,将小写字母视为大写字母。
    -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
    -m 将几个排序好的文件进行合并。
    -M 将前面3个字母依照月份的缩写进行排序。
    -n 依照数值的大小排序。
    -o<输出文件> 将排序后的结果存入指定的文件。
    -r 以相反的顺序来排序。
    -t<分隔字符> 指定排序时所用的栏位分隔字符。
    +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
    

    举例:

    sort –r test #逆序排列文件
    
  • 相关阅读:
    BZOJ3420[POI2013]Triumphal arch&BZOJ5174[Jsoi2013]哈利波特与死亡圣器——树形DP+二分答案
    BZOJ3417[Poi2013]Tales of seafaring——BFS
    BZOJ3750[POI2015]Pieczęć——链表
    bzoj 3594 方伯伯的玉米田
    Cocos2dx学习之SimpleGame
    新旧版本的quick-x项目移植
    cocos2dx 2.2.1 下面创建新项目测试运行
    VS2012下面编译Cocos2dx的HelloLua项目时报错>>> 项目文件"" 已被重命名或已不在解决方案中
    cocos2dx-lua or quick 2dx 中的图片资源加密
    关于对quick-2dx项目中的Lua代码的加密
  • 原文地址:https://www.cnblogs.com/xbxblog/p/9831710.html
Copyright © 2011-2022 走看看