一:基本

  • 字符处理主要是文本的搜索和处理。
  • 搜索也主要使用到了 管道 作为媒介。

二: grep 搜索文本

  - 基本语法 (可以在文本中使用正则进行搜索)

    - grep [-incv] '文本' 文件

      - i 不区分大小写

      - c 匹配行数

      - n 输出匹配行数

      - v 反向匹配

  - 正则使用

    - grep '^[123]' index.txt  (搜索在开头为123的行)

三: sort 排序

  - 基本语法

    - sort [-ntkr] 文件名

      - n 数字排序

      - t 指定分隔符

      - k 指定第几列

      - r 反向排序

  - 指定排序

    - -t -k 可以指定排序方式

    - 比如这里,我新建了一个 sort.txt

      • [mttyk]$ cat sort.txt
        b:-
        a:-
        f:-
        h:-
        d:-
        h:-
        g:-

    - 在没有指定条件时候,sort 默认第一个字符正序

      • [mttyk]$ sort sort.txt
        a:2-2
        b:1-3
        d:3-6
        f:4-1
        g:6-7
        h:8-9
        h:8-9

    - 如果想使用第二例的数字来进行排序的话

      • [mttyk]$ sort -t ":" -k 2 sort.txt
        b:1-3
        a:2-2
        d:3-6
        f:4-1
        g:6-7
        h:8-9
        h:8-9

        -t 等于切割了两组
        1组 切割符 第二组
        b : 1-3
        a : 2-2
        ......

四: uniq 删除重复内容

  - 基本语法

    - uniq [-ic] 文件

      - i 忽略大小写

      -c 显示重复行数

  - 注意

    - uniq 语法应该是和 sort 一起使用的,因为不连续的重复数据,uniq 是无法删除的

    - 所以需要 sort 排序后删除/统计

    • 文件
      h:8-9
      d:3-6
      h:8-9 直接 uniq 删除重复
      [mttyk]$ uniq sort.txt
      h:8-9
      d:3-6
      h:8-9
      无法删除 排序后 uniq 删除重复
      [mttyk]$ sort sort.txt | uniq
      d:3-6
      h:8-9

五: tr (文本转换/删除)

   - tr 只能在管道中处理字符,源文件并不能修改

  - 基本语法 (支持正则)

    - 删除指定字符  tr -d "[1-9]"

    - 转换指定字符 tr "[a-z]" "[A-Z]"

  - 替换字符时,文本中有多少个字符,就只能替换多少个字符

六:sed (文本处理) ( -i 可改变源文件)

  - 基于 行  的 文本处理工具

  - 基本语法

    sed [options] 'commend' file

  - 删除操作 (/d)

    - 删除指定行    sed '1d' index.txt (删除 index.txt 文件下的第1行)

    - 删除指定区间 sed '1,2d' index.txt (删除 index.txt 文件下的第1-2行)

    - 删除最后一行 sed '$d' index.txt (删除 index.txt 文件下的最后一行)

    - 删除空行       sed '/^$/d' index.txt (删除 index.txt 文件下的空行)

  - 查找替换 (s/)

    - 部分替换 sed 's/L/l/1' index.txt (替换 index.txt 文件下的L为l) (只替换一行中的第一个)

    - 全部替换 sed 's/L/l/g' index.txt (替换 index.txt 文件下的L为l) (一行不管有多少个,全部替换)

 

  - 字符替换 (y/)

    - 批量替换 sed 'y/abcd/ABCD/' index.txt (替换 index.txt 文件下的a为A, b为B, c为C,d为D)

  - 文本插入 (i 匹配行后插入) (a 匹配行前插入)

    - 指定行插入 sed '2 i insert' index.txt  (在 index.txt 文件 第2行 插入文本)

七:awk (文本处理)

  - 基于 列 的文本处理工具

  - 基本语法

    - -F 指定分隔符

  - 基本操作

    - 查看文本域数量

      - awk '{print NF}' index.txt  (查看 index.txt 文件的切割域) (内部变量 NF 实现)

    - 求和

      - awk 'BEGIN{total=0}{total+=$1}END{print total}' index.txt

      - awk 'BEGIN{total=0;num=0}{num+=$1;total+=1}END{print total/num}' index.txt

《linux 字符处理》- grep/sort/uniq/tr/paste的更多相关文章

  1. Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

    在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...

  2. linux命令-awk,sort,uniq

    学习地址:http://man.linuxde.net/awk#awk的工作原理 awk 选项参数说明: -F fs or --field-separator fs 指定输入文件折分隔符,fs是一个字 ...

  3. linux shell——md5sum,sha1sum,sort,uniq (转)

    1.文件校验 1. md5sum eg: md5sum filename 注:生成一个128位的二进制位,即32位的十六进制字符串 1.验证文件的正确性: md5sum  file1 file2 &g ...

  4. linux命令使用 cut/sort/uniq

    我记得之前去XX网面试的那个面试题是这样的:有个apache.log 文件文本内容如下:======================[niewj@centSvr ~]$ cat apache.log  ...

  5. linux字符处理命令 sort(部分转载)

    [root@LocalWeb01 ~]# sort /etc/passwd |less   (升序 ) [root@LocalWeb01 ~]# sort -r /etc/passwd |less ( ...

  6. linux sort,uniq,cut,wc,tr命令详解

    sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...

  7. 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解

    linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...

  8. [linux] grep awk sort uniq学习

    grep的-A-B-选项详解grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行,下面是解释1. grep -A1 keyword filename找出filename中带有keyword ...

  9. 线上问题debug过程(cat,grep,tr,awk,sort,uniq,comm等工具的综合使用)

    问题:发现线上到货单的数量,小于实际到货的数量. 怀疑一些隐藏的条件,将部分唯一码进行了过滤,导致数量变少. 开展了如下的跟踪流程: 1.找到其中一个明细的唯一码 grep 6180e-4b09f p ...

随机推荐

  1. Android开发(二十三)——Application

    参考: [1] Android中Application类用法.http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.htm ...

  2. Android VLC播放器二次开发3——音乐播放(歌曲列表+歌词同步滚动)

    今天讲一下对VLC播放器音频播放功能进行二次开发,讲解如何改造音乐播放相关功能.最近一直在忙着优化视频解码部分代码,因为我的视频播放器需要在一台主频比较低的机器上跑(800M主频),所以视频解码能力受 ...

  3. CentOS配置Tomcat开机启动

    通常我们进行服务器维护的时候需要注意点为,服务器上的容器一般都是开机启动,减少停机后应用还需要一个一个启动的麻烦. 1) 新建tomcat文件 touch /etc/rc.d/init.d/tomca ...

  4. C++ 智能指针一

    /* 智能指针shared_ptr */ #include <iostream> #include <string> #include <memory> //智能指 ...

  5. 关于Unity中ARPG游戏人物移动(专题十一)

    ARPG:动作型角色扮演类游戏 大多数的ARPG游戏都是使用摇杆操作,以第三人称摄像机的方式来跟随主角,实际上人物只走八个方向,上,下,左,右,左上,左下,右下,右上 控制角色移动的思路1: 在ARP ...

  6. 【转帖】oracle数据类型和对应的java类型

    原文地址:http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/datacc.ht ...

  7. ViewPager PagerAdapter not updating the View

    There are several ways to achieve this. The first option is easier, but bit more inefficient. Overri ...

  8. centos7.0 yum 安装php服务器

    https://blog.csdn.net/jiaoshenmo/article/details/50923900 首先收一下:centos7.0用yum直接安装apache.php他们的默认版本是a ...

  9. centos7 安装zookeeper3.4.8集群

    1.下载上传文件到centos中 2.解压文件夹 3.cd conf 文件下,cp  zoo_sample.cfg  zoo.cfg 4.vim zoo.cfg # The number of mil ...

  10. 图表统计FusionCharts

    工作中用的图形统计,用的FusionCharts,发现Chenssy总结了很详细了,特此记录一下.tks Chenssy. tks: http://www.cnblogs.com/chenssy/ar ...