Linux入门基础 #10:命令行文本处理工具



本文出自 http://blog.csdn.net/shuangde800

---------------------------------------------------------------------------------



基于关键字搜索


命令grep用以基于关键字搜索文本

$ grep 'shuangde' /etc/passwd
$ find / -user shuangde | grep Video

-i 在搜索的时候忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax 在输出的时候包含结果所在行之后的指定行数
-Bx 在输出的时候包含结果所在行之前的指定行数




基于列处理文本


命令cut用以基于列处理文本内容
$ cut -d : -f 1 /etc/passwd 用冒号分隔并显示passwd文件的第一列(如果显示多列:-f 1,2,3)
$ grep shuangde /etc/passwd | cut -d: -f3


-d 指定分隔符(默认是TAB)
-f 指定输出的列号
-c 基于字符进行分割

$ cut -c2-6 /etc/passwd
显示第2~6个字符



文本统计


命令wc(word count)用以统计文本信息
$ wc file 输出行数,单词数,字节数

-l (lines) : 只统计行数
-w (words) : 只统计单词数
-c (bytes):只统计字节数
-m (chars):只统计字符数




文本排序


sort命令:用以对文本的行内容进行排序(只支持英文和数字)
$ sort filename

-r 倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-t c 使用c作为分隔符分割为列进行排序
-k x 当进行基于指定字符分割为列的排序时,指定基于那个列排序


删除重复行


$ sort -u可以删除重复行
$ uniq用以删除相邻的 重复行


文本比较

diff 命令:一行行地比较两个文本文件的差异
$ diff file1 file2
-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示比较信息(一般用以生成patch文件)
$ diff -u file1 file2 > final.patch


拼写检查


aspell 命令: 显示检查英文拼写
$ aspell check file 检查文件file内的单词拼写,可以进行改正
$ aspell list file 把文件file内错误单词,并显示出来



处理文本内容


tr 命令 : 改变或者删除文本内容

删除关键字
$ tr -d 'TMD' < filename 把T,M,D三个字母都删掉

转换大小写
$ tr 'a-z' 'A-Z' < filename



搜索替换


sed命令:用以搜索并替换文本(stream editor for filtering and transforming text.

$ sed 's/linux/unix/g' file
$ sed '1,50s/linux/unix/g' file
$ sed -e 's/linux/unix/g' -e 's/hehe/haha/g' file 可以指定多个匹配模式
$ sed -f sededit file






你可能感兴趣的:(Linux入门基础 #10:命令行文本处理工具)