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结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...
随机推荐
- Live 直播过程
采集.处理.编码.封包.推流.传输.转码.分发.拉流.解码.播放,从推流到播放
- java 实验2 类
共5道大题 最后一题为自动洗牌发牌系统 1) 编写一个类实现银行帐户的概念.包括的属性有:帐号.储户姓名.地址.存款余额,包括的方法有:存款.取款.查询.计算利息.累加利息等. public cla ...
- Balance(Stack)
栈的运用 mooc视频连接 #include <iostream> using namespace std; ]; ; void Push(char c) { ) { Top = ; S[ ...
- Unite Shanghai 2019全日程曝光(建议收藏)
https://mp.weixin.qq.com/s/KvAyXpDhqWROtTX1Ol3a4Q 5月10-12日,Unite Shanghai 2019即将在上海国际会议中心正式开幕.本次大会共设 ...
- 转载智能家居 作者:热情的沙漠 出处:http://www.cnblogs.com/buptzym/
理工男打造帝都89平智能家庭 毕业后的2016年年初,搬入新家,总算不用在出租屋里鬼混了,于是就想把之前童年的梦想:智能家居+家庭影院好好实现一下~ 相比帝都高昂的房价,这些东东还凑合玩得起,不过 ...
- unix网络编程源码编译问题
##获得更多资料欢迎进入我的网站或者 csdn或者博客园 今天在温习计算机网络时,突然将我很久前买的<unix网络编程第三版卷一>拿出来看看了.放了两年了,哈哈.主要讲的套接字,之前编写 ...
- php 大文件读取
当你需要处理一个5G的文件里面的数据时,你会怎么做,将文件里面的内容全部读取到一个数组里面去? 显然这种做法对小文件是没有问题的,但是对于大文件还是不行的 这时就需要用到 yield 了 ,注意这是 ...
- [ADB Shell]Android Debug Bridge常用命令
ADB用法 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...
- 如何在UITableViewController上添加一个固定的视图
最近在使用UITableViewController,想在上面添加一个固定的视图,不随ScrollView滑动而移动.最后找到2种解决办法,一种是计算TableView的偏移,调整视图的位置,不断更新 ...
- 13. js延迟加载的方式有哪些
JS延迟加载,也就是等页面加载完成之后再加载 JavaScript 文件. JS延迟加载有助于提高页面加载速度. 一般有以下几种方式: 1)defer 属性 <script src=&q ...