一:基本

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

二: 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. linux中的信号机制

    概述 Linux信号机制是在应用软件层次上对中断机制的一种模拟,信号提供了一种处理异步事件的方法,例如,终端用户输入中断键(ctrl+c),则会通过信号机制停止一个程序[1]. 这其实就是向那个程序( ...

  2. Android5.0通知变化浅析

    目前在Android中通知的使用还是很常见的,为了做版本兼容,常用兼容包NotificationCompat.Builder和 Notification.Builder. NotificationCo ...

  3. 开发过程中遇到的问题1--------我们的mysql的查询语句时自己写的,没有用oracle的nextvalue函数。所以这里涉及到了并发的问题。

    效果http://www.cnblogs.com/wanggangblog/p/4037543.html 很多的采购单会生成.生成的时候会有订单的编号,然后一个采购单的编号是唯一的,怎么生成呢?之前o ...

  4. Tomcat 7.0安装与配置

    下载后解压缩到C盘,重命名为Tomcat-7.0.67,目录最好不要有空格: 以下为Tomcat 7的配置: 首先,右键计算机–>属性–>高级系统设置–>环境变量:  下载好压缩包后 ...

  5. PHP最全笔记(三)(值得收藏,不时翻看一下)

    /* [数组函数] *///统计计算count        计算数组中的单元数目或对象中的属性个数array_count_values  统计数组中所有的值出现的次数array_product    ...

  6. Git错误:error: The following untracked working tree files would be overwritten by merge:

    [andy@localhost weixin_robot]$ git pull Updating d652d1c..fa05549 error: The following untracked wor ...

  7. NUC972---Linux驱动开发

    驱动开发是嵌入式 Linux 产品开发的重要组成部分,驱动是将芯片底层与Linux应用连接起来的桥梁.驱动程序的好坏直接影响和决定着产品的稳定性,稳定的驱动程序是产品可靠性的基石. 编写 Linux ...

  8. 使用LevelListDrawable实现Html.fromHtml多张图片显示

    stackoverflow网站果然强大,帮了我不少忙! http://stackoverflow.com/questions/16179285/html-imagegetter-textview 首先 ...

  9. Elasticsearch 学习之不停止服务,完成升级重启维护操作

    我们可以设置集群的平衡参数来暂时禁用掉平衡,具体步骤如下: 1.如果可能的话,先暂停掉数据新增和更新操作,这样会提高集群恢复的时间: 2.禁用集群分片平衡操作,直到告诉集群可以恢复平衡操作为止,禁用配 ...

  10. cordova(安卓)(腾讯信鸽注册绑定与反绑定) 插件开发

    腾讯信鸽快速开发指南 http://developer.xg.qq.com/index.php/Android_SDK%E5%BF%AB%E9%80%9F%E6%8C%87%E5%8D%97 本文参考 ...