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结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...
随机推荐
- [python]模块及包
一 .module 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py".".pyo".".pyc&quo ...
- WinForm中的焦点
窗口打开后默认的焦点在TabIndex为0的元素上,即使代码中在其他元素上设置了Focus(),也没用,所以初始状态最好通过TabIndex来控制. WebForm中点其他如空白地方,之前的控件就会失 ...
- fwrite()
注:fwrite(),fread -可对数据块读写,且数据为二进制,文本下查看为乱码,文件的打开方式为 “b*” 实例: 写入二进制数据 for (int i = 0; i < SN; i++) ...
- 苹果开发者账号提示“Unable to verify mobile phone number”的解决方案
在注册苹果开发者账号时,会提示:"Unable to verify mobile phone number.".顾名思义,没有有效的手机号码. 解决方案: 进入到Your Appl ...
- 3月份GitHub上最热门的Java开源项目
今天,我们来盘点3月份GitHub上最热门的Java项目的时候了,如果你每月都有关注猿妹发布的排行榜,那么本月的Java项目对你来说一定不陌生,这些都是曾经多次出现在榜单中的项目: 1 advance ...
- .Generator与其他异步处理方案
1.Generator与其他异步处理方案 以前,异步编程的方法,大概有下面四种. 1.1 回调函数 JavaScript 语言对异步编程的实现,就是回调函数.所谓回调函数,就是把任务的第二段单独写在一 ...
- MyBatis介绍及使用
一.介绍: 1.MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 2.和数据库打交道的技术有: 原生的JDBC技术--->Spring的JdbcTe ...
- php 写入csv时 双引号,逗号及特殊字符
1.双引号 <?php function new_csv($string) { $filename = date('Ymd').'.csv'; //设置文件名 header("Cont ...
- Android 开发环境的构建备忘
准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ JD ...
- 初用sqlite3.exe
1.记得要先建立数据库文件 为了进行数据库的编写,我安装了sqlite3,由于刚接触数据库,我尝试着建立表,并插入元组,属性,用select from语句也可以调出写入的内容,但是不知道如何保存,直接 ...