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结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...
随机推荐
- springMVC+spring+mybatis多数据源配置
1.application.properties配置 <?xml version="1.0" encoding="UTF-8"?> <bean ...
- 复制构造函数被调用的三种情况------新标准c++程序设计
1.当用一个对象去初始化同类的另一个对象时,会引发复制构造函数被调用.例如,下面的两条语句都会引发复制构造函数的调用,用以初始化c2. C c2 (c1); C c2=c1; 这两条语句是等价的.注意 ...
- xcode工程配置绝对路径与相对路径
1.问题描述 一般我们在xcode里面配置包含工程目录下头文件的时候,都要关联着相对路径和绝对路径,如果只是自己用这个项目,用绝对路径的问题不大,但是如果你把工程发给别人,别人就要在改这个绝对路径,这 ...
- 拆半搜索binary_search
//binary_search用于在有序的区间用拆半查找搜索等于某值得元素 #include<algorithm> #include<iostream> using names ...
- python-flask之request的属性
flask的request模块的属性(参考) #代码示例,仅仅是为了测试request的属性值 @app.route('/login', methods = ['GET','POST']) def l ...
- MVC进阶篇(四)——[HttpGet]和[HttpPost]
前言 Get和post,一个获取请求,一个提交请求,在MVC里面用法也很特别,总结一下,我理解的不是特别深刻,希望多多交流. 内容 [HttpGet] 需求: 用户想要通过点击修改按钮来达到修改这部分 ...
- requests模块处理cookie,代理ip,基于线程池数据爬取
引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的. 一.基于requests模块 ...
- VS2017+DLib_19.17详细配置教程
最近学校布置了一个关于图像融合的作业,于是想利用Learn OpenCV 网站上的Face Morph 教程来设计一个人脸融合的Gif图,但是程序中需要用到DLib库,光是配置这个库就花费了我半天 ...
- [SCOI2007]最大土地面积(旋转卡壳)
首先,最大四边形的四个点一定在凸包上 所以先求凸包 有个结论,若是随机数据,凸包包括的点大约是\(\log_2n\)个 然鹅,此题绝对不会这么轻松,若\(O(n^4)\)枚举,只有50分 所以还是要想 ...
- springcloud微服务总结六
SpringCloud实战7-Config分布式配置管理 分布式环境下的统一配置框架,已经有不少了,比如百度的disconf,阿里的diamand 官方文档对spring Cloud Config的描 ...