Linux文本处理工具
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文本处理工具的更多相关文章
- Linux文本编译工具VIM详解
Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...
- Linux文本查看工具
文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...
- Linux 文本处理工具grep,sed,awk
grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...
- linux 文本分析工具---awk命令(7/1)
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- linux文本处理工具篇
一.常用简单工具 cat [OPTION]... [FILE]... -E:显示行的结束符$ -n:对显示出的每一行进行编号. -A:显示所有控制符 -s:压缩连续空行为一行 more:分页查看文件 ...
- Linux文本处理工具——Sed
sed:数据流编辑器: awk:报告文本的生成器 sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器 行编辑器 全屏编辑器:vi/vimsed:内存空间(模式空间 ...
- linux文本处理工具及正则表达式
cat命令:查看文本内容 cat [选项]... [文件]... -E 显示行结束符 -n 显示文本内容时显示行号 -A 显示所以控制符 -b 非空行编号 -s 压缩连 ...
- linux文本处理工具-1
文件内容: cat ,more,less 文件截取:head,tail 按列抽取:cut 排序和统计:sort,wc ----------------------------------------- ...
- Linux 文本处理工具(grep sed awk )
^test: 以test开头; test$: 以test结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...
随机推荐
- Ecliplse导入maven项目applicationContext.xml报错:Referenced file contains errors (http://www.springframework.org/schema/context/spring-context-3.1.xsd). For more information, right click on the message in
刚刚导入的maven项目的Spring配置文件报错: 大体意思是说: 引用的文件包含错误(http://www.springframework.org/schema/context/springing ...
- Ext中setValue和setRawValue
Ext.getCmp('modifyStatus').setValue(record.get('status').trim()); Ext.getCmp('modifyStatus').setRawV ...
- svn: Can’t convert string from ‘UTF-8’ to native encoding: 解决办法
主要原因是linux的编码发生改动 只需该为 en_US.UFT-8即可 [具体操作可以查看]https://www.cnblogs.com/sz-xioabai/p/10523423.html
- saltstack平台基础
saltstack概述saltstack是基于python开发的一套C/S架构配置管理工具,使用SSL证书签方的方式进行认证管理底层使用ZeroMQ消息队列pub/sub方式通信 号称世界上最快的 ...
- java中容器的概念
容器:顾名思义,装东西的器物至于spring中bean,aop,ioc等一些都只是实现的方式具体容器哪些值得我们借鉴,我个人觉得是封装的思想.将你一个独立的系统功能放到一个容器之中,可以当做一个大的接 ...
- 简单概括下浏览器事件模型,如何获得资源dom节点
在各种浏览器中存在三种事件模型:原始事件模型,DOM2事件模型,IE事件模型.其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE以外的所有主流浏览器支持. 浏览器事件模型 ...
- Trie树【洛谷P3879】 [TJOI2010]阅读理解
P3879 [TJOI2010]阅读理解 题目描述 英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过. 输入输出 ...
- python实现对象'+'操作符
python对象实现__add__,__radd__方法即可实现'+'操作符 demo: # coding=utf-8 class Person(object): def __init__(self, ...
- CentOS 中安装tomcat
1.安装tomcat前,需要安装JDK 2.下载tomcat安装包 wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin ...
- php 常用字符集
ASCII 字符集 单字节编码,7位(bits)表示一个字符,共128字符 包含内容 控制字符:回车键.退格.换行键等. 可显示字符:英文大小写字符.阿拉伯数字和西文符号 ANSI 码 ANSI编码 ...