linux 常用文本处理工具
- tr
- cat
- tac
- rev
- more
- less
- head
- tail
- cut
- paste
- wc
- sort
- uniq
tr 转换和删除字符
常用选项
-d # 删除字符 -s # 去重,把连续重复的字符以单独的一个字符显示 -c # 取反 [:alnum:]:字母和数字 [:alpha:]:字母 [:digit:]:数字 [:lower:]:小写字母 [:upper:]:大写字母 [:space:]:空白字符 [:print:]:可打印字符 [:punct:]:标点符号 [:graph:]:图形字符 [:cntrl:]:控制(非打印)字符 [:xdigit:]:十六进制字符
cat 查看文本内容
-E:显示行结束符$ -A:显示所有控制符 -n:显示的文本带行号 -b:对非空行加行号 -s:压缩连续的空行成一行
tac 反向显示文本内容
tac /etc/passwd
rev 反向显示每行
rev /etc/passwd
more 分页查看文本内容
more -d test.txt
less 分页查看文件
/文本 搜索 文本
n/N 跳到下一个 或 上一个匹配
head 显示文本前面的行
-c # 指定获取前#字节 -n # 指定获取前#行,#如果为负数,表示从文件头取到倒数第#前 -# 同上
tail 显示文件后边的行
-c # 指定获取后#字节 -n # 指定获取后#行,如果#是负数,表示从第#行开始到文件结束 -# 同上 -f 跟踪显示文件fd新追加的内容,常用日志监控,相当于 --follow=descriptor,当文件删除再新 建同名文件,将无法继续跟踪文件 -F 跟踪文件名,相当于--follow=name --retry,当文件删除再新建同名文件,将可以继续跟踪文 件
cut 提取文本的指定列
-d DELIMITER: 指明分隔符,默认tab -f FILEDS: #: 第#个字段,例如:3 #,#[,#]:离散的多个字段,例如:1,3,6 -#:连续的多个字段, 例如:1-6 混合使用:1-3,7 -c 按字符切割
--output-delimiter=STRING指定输出分隔符
paste 合并多个文件同行号的列到一行
-d #分隔符:指定分隔符,默认用TAB
-s #所有行合成一行显示
wc 统计文本数据
-l 只计数行数 -w 只计数单词总数 -c 只计数字节总数 -m 只计数字符总数 -L 显示文件中最长行的长度
sort 排序
-r 执行反方向(由上至下)整理 -R 随机排序 -n 执行按数字大小整理 -h 人类可读排序,如: 2K 1G -f 选项忽略(fold)字符串中的字符大小写 -u 选项(独特,unique),合并重复项,即去重 -t c 选项使用c做为字段界定符 -k # 选项按照使用c字符分隔的 # 列来整理能够使用多次
uniq 删除重复行
-c: 显示每行重复出现的次数 -d: 仅显示重复过的行 -u: 仅显示不曾重复的行
...