Linux文本处理工具

Linux中熟练的使用文本处理工具非常的重要, 因为Linux在设计的时候是采用一切皆文件的哲学的, 甚至连计算机中的配置也都使用伪文件系统来表示, 要查询里面的内容就是对文件进行操作, 所以学会使用文件处理工具事半功倍。而在一切皆对象的Windows中, 因为对象封装了所有的操作, 包括显示标准输出的结果, 使用过powershell的人应该知道, 标准输出流显示的结果, 也就是控制台上显示的结果也都是对象, 而不是单纯的文本, 我们可以获取这个对象并调用器API对他进行更近一步的操作, 这个可以说是Windows平台上的一个优点

find

  • -name
  • -type: f, d
  • -maxdepth: 查找的深度, 也就是目录递归的深度, 为1就是在当前目录查找
  • -regex: 正则表达式匹配, 是全路径匹配
  • -iregex: 忽略大小写的正则表达式匹配
  • -delete: 删除找到的文件或者目录
  • -print: 打印出结果, 默认就是这个选项, 打印出来的结果默认是\n分隔的
  • -print0: 将打印出来的结果使用\0进行分隔
  • -exec {} ;
  • -atime: 访问时间, 单位是天, -atime 3 表示3天内访问
  • -mtime: 修改内容时间
  • -ctime: 修改元数据时间, 只要出发了atime或者mtime, ctime一定会改变
  • -amin: 和atime一样, 只是单位为分钟
  • -mmin: 和mtime一样, 只是单位为分钟
  • -cmin: 和ctime一样, 只是单位为分钟
  • -user
  • -perm
  • -newer
  • -nouser
  • -nogroup
  • -size: -size +5M -size -10M, 表示在5-10M的文件或则目录
  • 分组使用( ): find . ( -name '.txt' -o -name '.pdf' ) -print

grep

  • -e: 多模式匹配
  • -c: 计数
  • -o: 只显示查找到的结果, 在没有指明-o选项时显示的是匹配到一行
  • -v: 只输出没有匹配到的行
  • -n: 打印行号
  • -i: 忽略大小写
  • -l: 只打印文件名
  • -R: 递归

xargs

  • 将输入的数据转换为特定的命令行参数, 与普通的如ls | grep -n 'python'不同, 这里的grep通过管道接受到的是输入的数据不是命令行参数

sort

  • -k: 指定第几列进行排序
  • -d: 按照字典进行排序
  • -n: 按照数据进行排序
  • -r: 逆序

uniq

  • -c: 统计
  • -d: 打印重复行
  • -u: 去掉重复行

wc

  • -l: 行数
  • -w: 单词书
  • -c: 字符数

sed(文本替换利器)

  • -e: 多模式匹配, sed -e '/^$/d' -e '///.*/d' file 删除空白行和注释行
  • s: 表示replace
  • g: 表示全局
  • -i: 表示inplace
  • sed 's/text/replacetext/' file
  • sed 's/text/replacetext/g/' file # 全局替换
  • sed -i 's/text/replacetext' file # 直接修改到原文件中
  • sed '/^$/d' file 删除空白行
  • sed '///.*$/d' file 删除C语言的注释
  • sed '/^#.*$/d' file 删除Python注释
  • sed 's/[a-z]+/\U&/' file 转大写, 只在Linux中有效, 在macOS上无效
  • sed 's/[A-Z]+/\L&/' file 转小写, 在macOS上无效

paste(文本合并, 与cut相反)

  • 将两个文本按照列合并
  • -d: 指明合并之后使用什么分隔

tr(是简化版本的sed, 当tr不能完成的时候使用sed, 因为tr对正则表达式支持不好)

  • -s: 压缩字符, tr -s '\n' file, 遇到连续的两个\n将其压缩成为一个, 功能是删除空行
  • -c: 取补集, tr -c 'a-z' 则取的就是在a-z之外的
  • -d: 删除匹配的

总结

  • 开发者常用的是sed, tr, find 和 grep
  • 在处理文本替换的时候使用sed, tr在加密的时候使用cat /dev/urandom | head -c 64 | tr -d -c 'a-zA-Z0-9_'

Linux文本处理工具的更多相关文章

  1. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...

  2. Linux文本查看工具

    文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...

  3. Linux 文本处理工具grep,sed,awk

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  4. linux 文本分析工具---awk命令(7/1)

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  5. linux文本处理工具篇

    一.常用简单工具 cat [OPTION]... [FILE]...  -E:显示行的结束符$ -n:对显示出的每一行进行编号. -A:显示所有控制符 -s:压缩连续空行为一行 more:分页查看文件 ...

  6. Linux文本处理工具——Sed

    sed:数据流编辑器: awk:报告文本的生成器 sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器 行编辑器 全屏编辑器:vi/vimsed:内存空间(模式空间 ...

  7. linux文本处理工具及正则表达式

    cat命令:查看文本内容 cat [选项]... [文件]... -E    显示行结束符 -n    显示文本内容时显示行号 -A    显示所以控制符 -b    非空行编号 -s     压缩连 ...

  8. linux文本处理工具-1

    文件内容: cat ,more,less 文件截取:head,tail 按列抽取:cut 排序和统计:sort,wc ----------------------------------------- ...

  9. Linux 文本处理工具(grep sed awk )

    ^test: 以test开头; test$: 以test结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...

随机推荐

  1. 以太坊系列之二: 单调时间monotime-以太坊源码学习

    在程序中需要测量时间时最好使用monotime.Now()而不是time.Now(),相比之下前者更准确. 来个示例: func main() { var start, elapsed time.Du ...

  2. 引用面试官文章 :如何准备Java初级和高级的技术面试

    本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只 ...

  3. python模块-hmac

    Hmac算法:Keyed-Hashing for Message Authentication.它通过一个标准算法,在计算哈希的过程中,把key混入计算过程中. import timefrom has ...

  4. vue 路由导航白话全解析

    这里先放上官网的教程和说明:点击这里,vue导航守卫官方文档 路由守卫 路由守卫说白了就是路由拦截,在地址栏跳转之前 之后 跳转的瞬间 干什么事 全局守卫 全局守卫顾名思义,就是全局的,整个项目所有路 ...

  5. win7关闭关机时的自动终止的功能

    gpedit.msc->计算器配置->管理模板->系统->关机选项->启用 参考: http://www.xitongcheng.com/jiaocheng/win7_a ...

  6. 4、numpy+pandas速查手册

    <Python数据分析常用手册>一.NumPy和Pandas篇 一.常用链接: 1.Python官网:https://www.python.org/2.各种库的whl离线安装包:http: ...

  7. mysql 面试题

    1.一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?   2.Mysql的技术特 ...

  8. cmder 常用快捷键

    双Tab,用于补全 Ctrl+T,建立新页 Ctrl+W,关闭标签页 Ctrl+Tab,切换标签页 Alt+F4,关闭所有标签页 Ctrl+1,切换到第一个页签,Ctrl+2同理 Alt + ente ...

  9. Loj 6432. 「PKUSC2018」真实排名 (组合数)

    题面 Loj 题解 枚举每一个点 分两种情况 翻倍or不翻倍 \(1.\)如果这个点\(i\)翻倍, 要保持排名不变,哪些必须翻倍,哪些可以翻倍? 必须翻倍: \(a[i] \leq a[x] < ...

  10. sublim text3中的一些设置

    {    "dictionary": "Packages/Language - English/en_US.dic",    "font_face&q ...