一、文本处理命令
在 linux 处理文本时要用到工具,执行命令和结果很多时候也是文本方式,处理文本三剑客:grep sed awk。
现在开始看下文本处理工具是怎么样的。常用的命令有
1 文件查看
u 文件查看命令:
cat,tac,rev
u cat[OPTION]...[FILE]...
-E:显示行结束符$
-n:对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行
u tac
u Rev
2 分页查看文件内容
u more: 分页查看文件
more [OPTIONS...] FILE...
-d: 显示翻页及退出提示
u less: 一页一页地查看文件或 STDIN 输出
查看时有用的命令包括:
/文本 搜索 文本
n/N 跳到下一个或上一个匹配
less 命令是 man 命令使用的分页器
3 显示文本前或后行内容
u head [OPTION]... [FILE]...
-C#:指定获取前#字节
-n#:指定获取前#行
-#:指定行数
u tail [OPTION]... [FILE]...
-c#:指定获取后#字节
-n#:指定获取后#行
-#:同上
-f:跟踪显示文件 fd 新追加的内容,常用日志监控相当于--follow=descriptor
-F:跟踪文件名,相当于--follow=name--retry
u Tailf 类似 tail-f,当文件不增长时并不访问文件
4 按列抽取文本 cut & 合并文件 paste
u cut [OPTION]... [FILE]...
-d DELIMITER:指明分隔符,默认 tab
-f FILEDS:
#:第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段,例如1-6
混合使用:1-3,7
-C 按字符切割
--output-delimiter=STRING 指定输出分隔符
5 Cut 和 paste
u 显示文件或 STDIN 数据的指定列
cut -d:-f1/etc/passwd
cat /etc/passwd | cut-d:-f7
cut-c2-5/usr/share/dict/words
u Paste 合并两个文件同行号的列到一行
paste [OPTION]... [FILE]...
-d分隔符:指定分隔符,默认用 TAB
-S:所有行合成一行显示
示例:
paste f1 f2
paste -s f1 f2
6 收集文本统计数据 wc
u 计数单词总数、行总数、字节总数和字符总数
u 可以对文件或 STDIN 中的数据运行
wc story.txt
39 237 1901 story.txt
行数 字数 字节数
u 常用选项
-I 只计数行数
-W 只计数单词总数
-C 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度