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
 
 
 
 
 

相关推荐