linux基本命令-文本过滤与处理

文本过滤与处理

03.01 cat命令
 通常用来显示文本文件的内容
 一般用来查看比较短的文本文件,因为其缓冲区有限
-s选项可以用来合并文件中多余的空行,多个空行将被压缩为一个空行;
-n选项可以显示行号
-b选项可以跳过空行的编号,显示非空行的行号;
cat不加任何参数可以用来赋值标准输入到标准输出;

03.02 more命令
可以用来分屏查看文本文件的内容
当文件的内容查过一屏时可以分屏查看,最后一行会显示more的提示显示;
回车键会向后滚动一行,空格滚动一屏;
在more中还支持搜索功能,与vim中的搜索用法一致;
按q键自动退出more
可以在某些命令后加管道符号和more命令,可以对命令的结果分屏显示;

03.03 less命令
用于分屏显示文本文件内容
相对与more命令less功能更加强大
回车键会向后滚动一行,空格滚动一屏;
还可以用上下左右键查看,more不能回滚;
同样支持搜索操作
more显示完文件内容后会自动退出;less不会,需要使用q键
在查看的过程中还可以调用其他shell指令,同vim的底行模式

03.04 grep命令
是一种长匹配指令,可以匹配我们输入的文本,并在文件中搜索含有匹配的行
 # grep "root" /ets/passwd
匹配模式中支持正则表达式
 # grep -n "fs$" /proc/filesystem    //搜索以fs结尾的行

03.05 head命令
用于显示文件的头部内容,默认显示文件前10行内容
 # head /etc/httpd/conf/httpd.conf
-n选项可以指定显示的行数
对于显示一些超大型文件的头部内容很重要
可以显示多个文件的头部内容

03.06 tail命令
用来显示给定文本文件的尾部内容,默认显示尾部10行内容
 # tail filename
-n选项可以指定显示内容的行数
-f可以动态跟随文件尾部的变化,经常用该选项监控系统的日志文件;

03.07 wc命令
用于统计文本文件中的行数,单词数和字节数;
 # wc /etc/passwd
        44 72 2102 /etc/passwd
 # wc -l /etc/passwd    //单独统计文件的行数
 # ps -ef |grep gnome |wc -l    //统计当前系统有多少个含有gnome进程
 # wc
然后输入一部分内容,按Ctrl+d时会统计我们刚输入的文字信息

03.08 uniq命令
用于过滤文件中的重复行,并没有改变文件内容
要求要过滤的文本是已经排序过的
首先使用sort命令排序,然后再使用uniq命令#sort file | uniq
-c选项可以统计重复行出现的次数

03.09 cut命令
用于显示文本文件中指定的列
 # cut -f 1 -d " " /etc/fstab    //以空格为分割,显示第1部分
 # cut -c -15 /proc/net/arp    //显示每列前面的15个字符即IP地址

03.10 sort命令
用来对文本排序
 # sort file
仅仅将file中的内容排序输出,并没有改变file的内容
-o选项可以输出到指定的文件
 # sort file -o result
也可以使用重定向的功能把排序结果保存到文件中

03.11 join命令
用于合并给定文件中的相同字段,要求文件是被排序过的
 # cat math
Tom    90
Jim    91
 # cat english
Jim    95
Tom    96
 # sort math > math.sorted
 # sort english > english.sorted
 # join math.sorted english.sorted
Jim    91    95
Tom    90    96
 
03.12 split命令
用于将给定的文件分割成若干个小的文件
 # split acess_log
会生成很多小文件,每个文件默认是1000行
-l选项可以指定分割的文件大小的行数

03.13 unexpand命令
用于将文件中多余的空格字符转换成制表符
 # cat test.txt
liuli                        zhangsan
 # unexpand -t 10 test.txt
liuli    zhangsan
-t将指定个数的空白转换成一个Tab键

03.14 tr命令
是字符处理工具,用于替换和删除给定文本中的单个字符,不是字符串处理工具
 # tr dev xyz < /etc/fstab    //将d替换为x,将e替换为y,v替换为z
sed命令可以替换字符串
 # tr a-z A-Z < /etc/hosts    //将小写字符替换为大写字符
 # tr -d angi < "zhangsanlisiwangwu"        //将angi对应的字符删除
zhslswwu
 # echo $PATH
/opt/arm-2009q3/bin:/usr/lib/qt4/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/beangr/bin
 # echo $PATH | tr ":" "\n"    //将结果中的:替换为换行符
/opt/arm-2009q3/bin
/usr/lib/qt4/bin:/usr/lib/qt-3.3/bin
/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
/sbin
/home/beangr/bin

03.15 tee命令
用于从标准输入读取数据,将其保存到指定的文件并输出到标准输出
 # cat /etc/fstab | tee file1 file2 file3
/* 正常输出到标准输出的同时保存到file1,file2,file3 */

03.16 tac命令
用于以行为单位,反序显示文本的内容
tac是cat的反指令

03.17 spell命令
是Linux中拼写检查命令,可以对文件中的文本以单词为单位进行拼写检查,并将拼写错误的单词打印出来
 # spell file

03.18 paste命令
用于多个文本文件的合并,以列为单位
 # cat t1.txt
name    math    java
Tom        100        70
jim        80        88
 # cat t2.txt
C++
90
89
 # paste t1.txt t2.txt
name    math    java    C++
Tom        100        70        90
jim        80        88        89
如果需要将结果保存到文件,需要使用重定向

03.19 diff命令
用于比较两个文件不同的地方
 # diff file1 file2
diff命令常用来生成补丁文件
 # diff -Nur file1 file2 >a.patch

03.20 cmp命令
用于比较两个文件的类型,可以是任何类型的文件
会显示出从哪个地方开始不同
 # cmp file1 file2
 # cmp /bin/ls /bin/mail
 # cmp file1 file1    //比较两个相同的文件,没有输出

03.21 look命令
用于显示文件中以指定字符串开头的行,要求文本文件是有序的
 # cat t1.txt
name    math    java
zhang    100        70
lisi    70        88
wang    100        70
zhang    100        70
 # sort t1.txt > t1.txt.sorted
 # look zhang t1.txt
zhang    100    70
 # look zhang t1.txt.sorted
zhang    100    70
zhang    100    70
 # look hello    //可以查询我们的字典,会显示所有包含hello的单词
在安装look命令的时候,会安装两个字典文件

03.22 ispell命令
可以检查文件中英文拼写错误,并给出纠正提示
 # cat test.txt
yyear    month    hppy
 # ispell test.txt //修改的结果会保存到文件

03.23 fold命令
用于控制文件内容在显示的时候占用屏幕的宽度
 # fold -w 20 /etc/fstab    //指定宽度为20个字符
换行的内容不表示文本是多行,只是多行显示而已

03.24 fmt命令
用于对文本文件的内容进行文本格式的优化
 # fmt -u /etc/fstab    //会压缩显示的空格

03.25 expand命令
用于将文件中的制表符转换为空格字符
 # cat t1.txt
hello    world
hello        Linux
 # expand -t 20 t1.txt
hello                    world
hello                                        Linux
与unexpand互逆

03.26 col命令
用来过滤其他指令输出的控制信息
 # cat mytest | col > mytest3

03.27 colm命令
用于删除文件中指定的列(字符为单位)
 # colm 20 < /etc/fstab        //删除前20列字符
原有内容不会发生改变
 # colm 20 50 < /etc/fstab    //删除20到50之间的列

03.28 comm命令
用于比较已经排序的文件,比较以行为单位
 # cat chengji1
wangwu    90
lisi    60
zhangsan    80
 # cat chengji2
wangwu    90
zhangsan    80
lisi    70
 # sort chengji1 > chengji1-1
 # sort chengji2 > chengji2-2
 # comm chengji1-1 chengji2-2

03.29 csplit命令
用于将一个大文件分割为小的文件,以行为单位
 # csplit test.txt 300
/* 从300行处分割成两个文件 */

03.30 diff3命令
用于比较3个文件的不同,并显示他们的不同地方
 # diff3 file1 file2 file3

03.31 diffstat命令
用于统计diff指令的输出结果
 # diff a.patch

03.32 printf命令
用于格式化并输出结果到标准输出,非常类似于C语言中的printf函数
 # printf "%s\t%s\n" "Hello" "world"
Hello world

03.33 pr命令
用于将文本文件转换成适合打印的文件,可以将文件分成多页并添加打印标题
 # pr test.txt > test.txt.print

03.34 od命令
用于输出文件的八进制,十六进制或其他格式编码的字节,通常用来显示不能直接在终端显示的字符
 # od -tcx1 test.txt
 # cat test.txt
hello world

03.35 rev命令
用于对文件的文本内容以行为单位进行字符的反序输出
 # cat test.txt
hello world
I love linux!
 # rev test.txt
dlrow olleh
!xunil evol I

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值