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结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...
随机推荐
- RadASM的主题更换!
RadASM的代码编辑器默认背景色位黑色,我很不习惯,决定更换它,按照下面步骤,我把RadASM的代码编辑器默认背景色成功更换成了白色: 1, 2, 3, 4,
- iOS 开发之 GCD 基础
header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...
- HDU6300-2018ACM暑假多校联合训练1003-Triangle Partition
题意是给3n个点,其中不可能存在任意三点共线的情况,让你在其中建n个三角形,点不能重复使用,三角形不能相互覆盖 做法是给每个点排序,按照先y轴排,再x轴排的顺序,三个三个一组从下往上输出,有人说是凸包 ...
- 并查集简述 (HDU-1213-How Many Tables)
并查集主要解决集合的有关运算,主要操作是查找操作和并操作. 1.集合的储存方式. 为便于查找,集合通常以树结构储存,每个元素分 数据域和指针域,可以用链式储存,也可以用结构数组储存,用根节点来表示一个 ...
- css实现正方形div的3种方式
网上百度了几种可以按照百分比画方框的方法 1.CSS3 vw 单位 1vw = 1% viewport width <div class="vw">hello,view ...
- HDU-2063(二分图匹配模板题)
过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- C++_类入门2-使用类
进一步探讨类的特征,重点是类设计技术,而不是通用原理.一些特性很容易,一些特性很微妙. 运算符重载 目的是使C++操作更美观,更接近于内置类型的操作. 隐藏了内部的实现机理,并强调了实质. 格式:op ...
- HDU_3038 How Many Answers Are Wrong 【带权并查集】
一.题面 HDU3038 二.分析 用并查集可以方便的判断两个位置是否有关系,这种关系可以通过是否有公共父节点判断,如果有公共父节点则可以直接判断是否正确,如果没有公共父节点,就可以把这个条件与之前的 ...
- 最少拦截系统(线性dp)
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于 ...
- poj2420 A Star not a Tree? 找费马点 模拟退火
题目传送门 题目大意: 给出100个二维平面上的点,让你找到一个新的点,使这个点到其他所有点的距离总和最小. 思路: 模拟退火模板题,我也不懂为什么,而且一个很有意思的点,就是初始点如果是按照我的代码 ...