文本处理命令 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 ...
随机推荐
- spring注入相关注解
本次主要整理四个注解 @ComponentScan.@Scope.@Conditional.@Import 1. @ComponentScan(value = "com.xiaoguo&qu ...
- python+opencv中最近出现的一些变化( OpenCV 官方的 Python tutorial目前好像还没有改过来?) 记一次全景图像的拼接
最近在学习过程中发现opencv有了很多变动, OpenCV 官方的 Python tutorial目前好像还没有改过来,导致大家在学习上面都出现了一些问题,现在做一个小小的罗列,希望对大家有用 做的 ...
- 关于爬虫的日常复习(17)——scrapy系列1
- springboot的yml不显示的原因
首先排除插件原因 1 安装好插件Ctrl+Alt+S 2 查看修改的application.yml是什么格 在yaml格式中添加*.yaml和*.yml 3 查看maven是否配置完善
- arch_遇到的问题
archlinux安装 wiki安装 可以参考这个来安装 $如果你跟我一样是用校园网安装的$ 记得使用pppoe-setup 来联网 arclinux 图形界面安装 参考 kde图形安装 需要创建一个 ...
- Oracle 11g 安装过程及测试方法
大家可以根据自己的操作系统是多少位(32位或64位)的,到官网下载相应的安装程序,如下图所示. 有一点需要注意,Oracle的安装程序分成2个文件,下载后将2个文件解压到同一目录即可. 下载完 ...
- 双指针,BFS和图论(三)
(一)图论 1.大臣的旅费 很久以前,T王国空前繁荣. 为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任 ...
- ios---二维码的扫描
二维码扫描 使用ios的AVFoundation框架实现二维码扫描 第一步:设置相机访问权限:在Info.plist添加Privacy - Camera Usage Description权限 第二步 ...
- vscode打开文件,中文显示乱码(已解决)
之前使用vscode打开keil的文件后,发现显示乱码,网上查找资料发现大多是这种方法:将files.autoGuessEncoding改为true,但是并没有用. 发现第二种方法为:在vscode中 ...
- pycharm 固定模板使用者和日期
如上图修改就可以正常修改模板了修改后每创建一个python文件就会是这种效果