文本处理命令- cat more less cut wc sort uniq

文本处理命令 cat more less cut wc sort uniq

1.cat 

cat主要功能:
1.一次显示整个文件。 cat filename
2.从键盘创建一个文件。 cat > filename   (只能创建新文件,不能编辑已有文件).

1 [[email protected] ~]$ cat > test.txt
 2 this is a test for cat command.^[[D
 3 a
 4 b
 5 cc
 6 de
其中^[[D是向左的箭头,本想回退一格编辑,但很可惜只能顺序输入
另外,如何结束输入呢???

在linux下:
       ctrl+d:代表输入完成或者注销
       ctrl+c:中断当前程序
       ctrl+z:将作业放置到后台(暂停)
        所以,此处应使用CTRL+D,结束输入。

3.将几个文件合并为一个文件: cat file1 file2 > file
4.追加一个文件到另一个文件末尾   cat file1 >> file2
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting  显示非打印字符,使用^和M-表示,除了LFD和TAB

2.more

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 
more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按

空格键        显示下一屏。

Enter键       显示下一行。

nf            向下移动n屏,其中n是数字。

nb            向上移动n屏,其中n是数字。

/模式         向下查找指定的字符串模式。      n 重复前面查找命令。

=             显示当前的行号。

h             显示more所有命令的帮助信息。

q             退出more。
    :f            输出文件名和当前行的行号
    V             调用vi编辑器
    !命令          调用Shell,并执行命令 
     q              退出more

more命令从前向后读取文件,因此在启动时就加载整个文件。

命令参数:

+n      从笫n行开始显示        more +3 log2012.log

-n       定义屏幕大小为n行     more -5 log2012.log

+/pattern 在每个档案显示前搜寻该字串(pattern),从该字串前两行开始显示  more +/pattern log2012.log

-s       把连续的多个空行显示为一行     more -s log2012.log

-u       把文件内容中的下画线去掉         more -u log2012.log

3.less

命令格式:

less [参数]  文件

功能:

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

回车键  向下一行 
        空格键  向下一页
           y       向上一行
           b      向上一页

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)
        N:反向重复前一个搜索(与 / 或 ? 有关)

v - 使用配置的编辑器编辑当前文件

h - 显示 less 的帮助文档

&pattern - 仅显示匹配模式的行,而不是整个文件

命令参数:

-N  显示每行的行号

-o <文件名> 将less 输出的内容在指定文件中保存起来

-Q  不使用警告音

-s  显示连续空行为一行

4.cut

cut是一个选取命令,通常是针对“行”来进行分析的,并不是整篇信息分析的。

cut是从一行中 取出我们想要的;

(1)其语法格式为:
              cut  [-bn]  [file]         cut -b 3 ins.log  ;  cut -b 3-5,7 ins.log
                     -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
           cut  [-c]    [file]          cut -c 3 ins.log    cut -c -3 ins,log   cut -c 3-5,7 ins.log 
                                              cut -c -3   从开始到第三个字符    cut -c 3-  从第三个字符到最后
                 -c :以字符为单位进行分割。
           cut  [-df]   [file]            cut -d : -f 1        cut -d : -f 1,3-5            
                     -d :自定义分隔符,默认为制表符。  -f  :与-d一起使用,指定显示哪个区域。

使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f  :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。

实例:

1.以字节提取:

$ who
rocrocket :0           2009-01-08 11:07
rocrocket pts/0        2009-01-08 11:23 (:0.0)
rocrocket pts/1        2009-01-08 14:15 (:0.0)
如果我们想提取每一行的第3个字节,就这样:

$ who|cut -b 3
c
c
c

提取 3到5和 8 字节
$ who|cut -b 3-5,8
croe
croe
croe

2.以字符提取:
$ cat cut_ch.txt
星期一
星期二
星期三
星期四
cut -b 3 cut_ch.txt  (用字节提取出错了)
?
?
?
?
cut -c 3 cut_ch.txt     (要用字符提取)




看到了吧,用-c则会以字符为单位,输出正常;而-b只会傻傻的以字节(8位二进制位)来计算,输出就是乱码。

当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开。

例子如下:
$ cat cut_ch.txt |cut -b 2
?
?
?
?
$ cat cut_ch.txt |cut -nb 2




3.自定义分隔:

如果遇到空格和制表符时,怎么分辨呢?怎么办?

有时候制表符确实很难辨认,有一个方法可以看出一段空格到底是由若干个空格组成的还是由一个制表符组成的。

cat tab_space.txt
this is tab finish.
this is several space      finish.

sed -n l tab_space.txt
this is tab\tfinish.$
this is several space      finish.$

看到了吧,如果是制表符(TAB),那么会显示为\t符号,如果是空格,就会原样显示
通过此方法即可以判断制表符和空格了。
注意,上面sed -n后面的字符是L的小写字母哦,不要看错。

(9)我应该在cut -d中用什么符号来设定制表符或空格呢?

其实cut的-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了。

如果你设定一个空格为间隔符,那么就这样:

$ cat tab_space.txt | cut -d ‘ ‘ -f 1
this
this
注意,两个单引号之间可确实要有一个空格哦,不能偷懒。
而且,你只能在-d后面设置一个空格,可不许设置多个空格,因为cut只允许间隔符是一个字符。

注意:

如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容

5.wc

Linux系统中的wc(Word Count)命令的功能为统计
    指定文件中的字节数、字数、行数,并将统计结果显示输出。

命令格式:

wc [选项]文件...

2.命令功能:

统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。

3.命令参数:

# wc install.log

901  1815   40279 install.log
           行数 单词数 字节数 文件名

-c 统计字节数。  wc -c ins.log

-l 统计行数。        wc -l ins.log

-m 统计字符数。这个标志不能与 -c 标志一起使用。              wc -m ins.log

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

-help 显示帮助信息

--version 显示版本信息

实例2:用wc命令怎么做到只打印统计数字不打印文件名

# cat test.txt |wc -l

实例3:用来统计当前目录下的文件数

# ls -l | wc -l

6.sort

据不同的数据类型进行排序,其语法及常用参数格式:
  sort [-bcfMnrtk] [源文件] [-o 输出文件] 

补充说明:sort可针对文本文件的内容,以行为单位来排序。

参  数:
  -u   在输出行中去除重复行                    sort -u seq.txt
  -b   忽略每行前面开始出的空格字符。
  -c   检查文件是否已经按照顺序排序。
  -f   排序时,忽略大小写字母。
  -M   将前面3个字母依照月份的缩写进行排序。
  -n   依照数值的大小排序。  ( 默认以文字类型排序)            sort -n number.txt

-o<输出文件>   将排序后的结果存入指定的文件。sort -r number.txt -o number.txt
  -r   以相反的顺序来排序。                                         sort -r number.txt
  -t<分隔字符>   指定排序时所用的栏位分隔字符。   sort  -t ‘:’ -k 2 facebook.txt
  -k  选择以哪个区间进行排序。

实例:
1.简单排序 并输出

$ cat seq.txt
banana
apple
pear
orange
       $ sort seq.txt
apple
banana
orange
pear

用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。
$ Sort seq.txt > result

2.自定义排序
    sort的-t选项和-k  
如果有一个文件的内容是这样:
$ cat facebook.txt
   banana:30:5.5
   apple:10:2.5
   pear:90:2.3
   orange:20:3.4

这个文件有三列,列与列之间用冒号隔开了,
第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序?
        sort提供了  -t    选项,后面可以设定间隔符。指定了间隔符之后,就可以用 -k  来指定列数了。

 

$ sort -n -k 2 -t ‘:’ facebook.txt      (以:为分隔符 根据第二个域排序)

apple:10:2.5
        orange:20:3.4
       banana:30:5.5
       pear:90:2.3

 

7.uniq

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

uniq语法

[[email protected] ~]# uniq [-icu]
选项与参数:
-i   :忽略大小写字符的不同;
-c  :进行计数
-u  :只显示出一次的行列-d   :仅显示重复出现的行列

实例:

1.直接使用去重命令没有任何效果

cat testfile
hello
world
friend
hello
world
hello
#uniq testfile
hello
world
friend
hello
world
hello

2.先排序文件,然后去除重复

#cat words | sort |uniq
friend
hello
world

3.排序之后删除了重复行,同时在行首位置输出该行重复的次数

#sort testfile | uniq -c
1 friend
3 hello
2 world

4. -d仅显示存在重复的行,-c并在行首显示该行重复的次数

#sort testfile | uniq -dc
3 hello
2 world

5. -u仅显示不重复的行

sort testfile | uniq -u
friend  

【引用“乌托邦眺望”:http://www.cnblogs.com/centos2017/p/7896746.html】

原文地址:https://www.cnblogs.com/PaulTsao/p/8724827.html

时间: 2024-11-07 09:19:59

文本处理命令- cat more less cut wc sort uniq的相关文章

文本文件操作命令cut wc sort uniq tr

cut:    -d:  意思是指定字段分隔符,默认是空格,带:的分隔符    -f:  指定要显示的字段        -f 1,3    是指第一和第三的字段        -f 1-3   是指第一到第三的字段 文本排序:sort    -n:数值排序    -r: 降序    -t: 字段分隔符    -k: 以哪个字段为关键字进行排序    -u: 排序后相同的行只显示一次    -f: 排序时忽略字符大小写    uniq:     -c: 显示文件中行重复的次数    -d: 只显

05,文本处理cat more less head tail sort uniq wc tr grep cut jion sed awk ok

文本处理cat more less head tail sort uniq grep cut jion sed awk ################################################ cat:concatenate files and print on the standard output 显示文件内容到标准输出(显示器) -e:显示最后一个结尾的字符 -n:显示行编号 [[email protected] ~]# cat -n /etc/shells 1  

linux基础篇07,linux文本处理cat more less head tail sort uniq grep cut jion sed awk

文本处理cat more less head tail sort uniq grep cut jion sed awk ################################################ cat:concatenate files and print on the standard output 显示文件内容到标准输出(显示器) -e:显示最后一个结尾的字符 -n:显示行编号 [[email protected] ~]# cat -n /etc/shells 1  

Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail 等都是可以接受 standard input 的管线命令啦.至于例如 ls, cp, mv 等就不是管线命令了!因为 ls, cp, mv 并不会接受来自 stdin 的数据. 也就是说,管线命令主要有两个比较需要注意的地方: 管线命令仅会处理 standard output,对于 standar

grep,cut,wc,sort,diff,uniq,patch命令

文本处理工具: Linux上文本处理三剑客: grep,egrep,fgrep: 文本过滤工具(模式: pattern)工具; grep:基本正则表达式,-E,-F egrep:扩展正则表达式,-G,-F fgrep:不支持正则表达式, sed: stream editor,流编辑器;文本编辑工具; awk: Linux上实现为gawk,文本报告生成器(格式化文本); 正则表达式:regual expression , regexp 由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面

Linux基础之文本查看命令(cat,tac,rev,head,tail,more,less)

Linux中我们总会有查看文本某些内容的时候,如果我们仅因为查看文本就使用vi进去文件又增加了不少额外的操作不方便.下面介绍一些文本查看命令,大家看后应该会有所帮助 cat cat - concatenate files and print on the standard output 表达格式:cat [OPTION]... [FILE]... 常用选项: -A:显示所有控制符 -n:显示行数 -E:显示行结束符 下面以几个例子来具体说明cat及其选项的使用 实验目录/test  文本/tes

文本处理(一)之cut、sort

文本处理 cut: -d:指定字段分隔符,默认是空格 -f:指定显示的字段 -f 1,3显示1和3列 -f 1-3显示1到3列 例子:cat /etc/passwd |cut -d':' -f1,3 文本排序 sort: -n:按数值排序,默认是升序 -r:反序排序 -t:字段分隔符 -k:以那个字段为关键字进行排序 -u:排序后相同的行只显示一次 -f:忽略字符大小写 uniqu: -d:只显示重复的行 -c:显示某一行重复的次数 wc: -l:只显示行 -w:单词数 -c:字节数 -m:字符

cat &nbsp; cut &nbsp; paste sort uniq diff 等命令用法

cat命令: cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容. cat  选项  参数 -n  :给所有输出的行数编号 -E  :显示每行的行结束符 -T  :制表符 -v  :显示非打印字符 -s  :当遇到有连续两行以上的空白行,就代换为一行的空白行 tac与cat反向显示 rve行内反着显示 例: [[email protected] ~]# rev /etc/passwd hsab/nib/:toor/:toor:0:0:x:toor 2.less命令: less

文本处理cat more less head tail sort uniq grep cut jion sed awk

################################################ cat:concatenate files and print on the standard output 显示文件内容到标准输出(显示器) -e:显示最后一个结尾的字符 -n:显示行编号 [[email protected] ~]# cat -n /etc/shells 1  /bin/sh 2  /bin/bash 3  /sbin/nologin 4  /bin/dash 5  /bin/t