文本处理命令 cat more less cut wc sort uniq
cat主要功能:
1.一次显示整个文件。 cat filename
2.从键盘创建一个文件。 cat > filename (只能创建新文件,不能编辑已有文件).
1 [loong@localhost ~]$ 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 显示连续空行为一行
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只擅长处理“以一个字符间隔”的文本内容
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:用来统计当前目录下的文件数
据不同的数据类型进行排序,其语法及常用参数格式:
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 来指定列数了。
-k 2
-t ‘:’ facebook.txt (以:为分隔符 根据第二个域排序)
orange:20:3.4
banana:30:5.5
pear:90:2.3
7.uniq
uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。
uniq语法
[root@www ~]# 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
文本处理命令 cat more less cut wc sort uniq的更多相关文章
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...
- grep,cut,wc,sort,diff,uniq,patch命令
文本处理工具: Linux上文本处理三剑客: grep,egrep,fgrep: 文本过滤工具(模式: pattern)工具; grep:基本正则表达式,-E,-F egrep:扩展正则表达式,-G, ...
- linux常用文本编缉命令(strings/sed/awk/cut)
一.strings strings--读出文件中的所有字符串 二.sed--文本编缉 类型 命令 命令说明 字符串替换 sed -i 's/str_reg/str_rep/' filename 将文件 ...
- 024:Java流实现Shell:cat 1.log | grep a | sort | uniq -c | sort -rn
本文阅读时间大约13分钟(本文实践性很强,建议pc端阅读,最好亲自实践). 参考答案 这个问题考察的是对Linux命令的熟悉程度,以及对Java中集合操作的综合运用,自从转到Java 8以后,我就一直 ...
- 文本处理工具(cut,sort,tr,grep等)
命令目录,查看某一个命令可点击直接跳转: 文件查看 cat tac rev more less 按行截取 head tail 转化内容 tr 按列操作 cut paste 分析文本 wc sort u ...
- 文本处理命令(sort+uniq+cut+tr+wc)+三剑客之sed
目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...
- [转]linux sort,uniq,cut,wc命令详解
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...
- linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
- linux sort,uniq,cut,wc,tr命令详解
sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...
随机推荐
- 程序员Java架构师多线程面试题和回答解析
当我们在Java架构师面试的过程中常见的多线程和并发方面的问题肯定是必不可少的一部分.那么在面试之前我们更应该多准备一些关于多线程方面的问题. 面试官只是想确信面试者有足够的Java线程与并发方面的知 ...
- 1z0-062 题库解析6
You want execution of large database operations to suspend, and then resume, in the event of space a ...
- hdu6621 二分加主席树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6621 Problem Description You have an array: a1, a2, ...
- iocp性能分析
网络上找iocp性能分析的文章很少,因工作关系,花了点时间特意从客观数据和理论角度分析了下iocp的性能 环境 CPU i7 4核8线程 1G网卡,echo方式测试(一个客户机模拟多个客户端模式,模拟 ...
- FindBugs报错
FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查 ...
- 正斜杠(" / ")和反斜杠(" \ ")的区别
反斜杠“\”是电脑出现了之后为了表示程序设计里的特殊含义才发明的专用标点.所以除了程序设计领域外,任何地方都不应该使用反斜杠. 如何区分正反斜杠 英语:"/" 英文是forward ...
- 关于Python类的多继承中的__mro__属性使用的C3算法以及继承顺序解释
刚刚学到类的多继承这个环节,当子类继承多个父类时,调用的父类中的方法具体是哪一个我们无从得知,为此,在Python中有函数__mro__来表示方法解析顺序. 当前Python3.x的类多重继承算法用的 ...
- 机器学习-计算机视觉和卷积网络CNN
概述 对于计算机视觉的应用现在是非常广泛的,但是它背后的原理其实非常简单,就是将每一个像素的值pixel输入到一个DNN中,然后让这个神经网络去学习这个模型,最后去应用这个模型就可以了.听起来是不是很 ...
- docker启动redis端口映射错误问题解决
今天使用docker安装redis,使用的时候出现了一些问题.第一次安装好后,在虚拟机后台启动了redis,然后在连接虚拟机的redis的时候怎么也连不上.出现这种情况我第一反应是防火墙没有开启所以我 ...
- SVN: 聚合工程下的子工程无法使用 svn:ignore
当想将聚合工程manager下子工程没用的一些文件使用svn:ignore,发现该功能不能使用 这是因为SVN 服务器上还没有这些子工程的文件夹,只有聚合工程的文件夹,所以SVN认为在服务器上这些代码 ...