今天来聊一聊关于linux中处理shell的文本工具,主要说说以下命令:
· 文件查看命令:cat、tac、
· 分页查看文件内容:more、less
· 显示文本前行或后行内容:head、tail
· 按列抽取文本:cut
· 合并文件:paste
· 文本数据统计:wc
· 文本排序:sort、uniq
cat
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
1.命令格式:cat [选项] [文件]…
2.命令功能:
a)一次显示整个文件:cat filename
b)从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
c)将几个文件合并为一个文件:cat file1 file2 > file
3.参数:
-E 显示行结束符$
-n 对显示出的每一行进行编号
-A 显示所有控制符
-b 对输出的非空行进行编号
-s 将连续的空行变成一行
4.示例:
以显示行号的方式显示file文件的全部内容
把两个文件合并成一个文件
用cat键盘输入创建文件(图有点乱,请别介意)
tac
反向显示内容,跟cat显示的内容相反。
more
more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
命令格式:more [选项] 文件名
命令参数:
-b 显示翻页及退出提示
+n 从笫n行开始显示
-n 定义屏幕大小为n行
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
常用操作命令:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
less
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,less可以往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。 less可同时查看多个文件使用n或者p进行切换。
命令格式:less [选项] 文件名
参数:
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串 向下搜索“字符串”的功能
?字符串 向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b: 向后翻一页
d: 向后翻半页
h: 显示帮助界面
Q: 退出less 命令
u: 向前滚动半页
y:向前滚动一行
空格键: 滚动一行
回车键 :滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
head
用来显示开头行,默认显示前10行。
命令格式:head [参数] [文件名]
这里只介绍 -n
tail
与head相反,取后行内容,默认后10行。
cut
命令格式:cut [选项] [文件名]
参数:
-d 指明分隔符,默认tab
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
–output-delimiter=STRING指定输出分隔符
显示文件的指定列
cut -d: -f1 /etc/passwd
cat /etc/passwd | cut -d: -f7
示例:
-d: -f1 表示:以:为分隔符截取第一列的数据。
paste
合并两个文件同行号的列到一行
命令格式:paste [选项] [文件名]
参数:
-d 分隔符:指定分隔符,默认用TAB
-s 所有行合成一行显示
wc
wc: word count 计数
参数:
-m 字符数
-c 字节
-l 行数
-w 单词数
示例:
有没有疑问?为什么输入的是abcd,明明是4个,怎么字符数和字节数显示结果都是5?是因为后面还有一个结束符没显示,但是系统也统计了进去。
sort
命令格式:sort [选项] [文件名]
参数:
-r 执行反方向(由上至下)整理
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k X 选项按照使用c字符分隔的X列来整理能够使用多次
uniq
从输入中删除前后相接的重复的行,常和sort 命令一起配合使用。
命令格式:uniq [选项] [文件名]
参数:
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
连续且完全相同方为重复
看出什么变化了么?连着的123,被删除了一个。再看下张图
好了,就先说这么多吧,有没有觉得这些命令很好玩?大家下周见喽!( ^_^ )/~~拜拜
原创文章,作者:吼吼哈嘿,如若转载,请注明出处:http://www.178linux.com/83092