课时20 Linux命令行文本处理工具

Linux课程学习笔记来源于网易云课堂:Linux 入门基础

1 文件浏览

cat 查看文件内容

more 以翻页形式查看文件内容

less 以上下翻页形式查看文件内容

head 查看文件的开始10行(或指定行数)

tail 查看文件的最后10行(或指定行数)

2 基于关键字搜索

grep 基于关键字进行文本搜索

grep 'linuxcast'/etc/passwd   // 在/etc/passwd 中搜索linuxcast项,单个单词不需要单引号或双引号

find / -userlinuxcast | grep Video   //在根目录(/)下用户linuxcast用户的文件,将信息传递给grep

grep的常用参数:

-i 在搜索时忽略大小写

-n 显示结果所在行数,方便下次修改或查看

-v 输出不带关键字的行,进行排除输出

-Ax (A=after)在输出的时候包含结果所在行之后的指定行数

-Bx (B=before)在输出的时候包含输出结果前几行:-B3    输出结果前3行

3 基于列处理文本

cut -d: -f1 /etc/passwd  // 修剪指定列,显示passwd到位第1列,指定分隔符是‘:’

grep linuxcast /etc/passwd | cut -d: -f3 //输出 /etc/passwd中含有linuxcast的信息,指定分隔符是:,并显示第3列

参数说明:

-d 指定分隔符(默认是TAB)

-f 指定输出列

-c 基于字符进行切割:cut -c2-6 /etc/passwd       //

4 文本统计

wc用于统计文本信息:

-l 只统计行数

-w 只统计单词

-c 只统计字节数

-m 只统计字符数

5 文本排序

sort命令对文本内容进行排序,仅对英文排序,默认是单词的首字母

-r 进行倒序排序

-n 基于数字进行排序

-f 忽略大小写

-u 删除重复行

-t c 使用c作为分隔符分割为列进行排序

-k x 当进行基于指定字符分隔为列的排序时,指定基于那个列排序

6 删除重复行

命令sort -u 删除重复行

unip用以删除重复的相邻行   cat linux | uniq

7 文本比较

diff linux linux-new  比较两个文件的区别

常用参数:

-i  忽略大小写

-b 忽略空格数量的改变

-u 统一显示比较信息[一般用以生成patch文件(补丁文件)]

diff -u linux   linux-new > final.patch

8 拼写检查(系统没有安装,通过sudo yum install aspell进行安装)

命令aspell用以显示检查英文拼写

aspell check linuxcast

aspell list < linuxcast

9 处理文本内容(原文件的内容不变)

命令tr用来处理文本内容

1)删除关键字:

tr -d 'apple'   < linux //以重定向的形式

2)转换大小写:

tr 'a-z' 'A-Z' < linux

10 搜索替换

sed用以搜索并替换文本:

1)  sed ‘s/linux/unix/g’ linuxcast          //对linuxcast文件进行搜索,将其中的linux替换成unix,g的作用是如果一行中出现多个匹配项,则都进行匹匹配。如果不加g,仅替换该行的一个匹配项。

2)  通过参数-e可以进行匹配多个:sed –e ‘s/linux/unix/g’ –e ‘s/nash/nash_su/g’ linuxcast

3)  sed'1,20s/linux/unix/g'  代表只替换1到20行

4)  sed –f sededit linuxcast    //将存有替换表达式的sededit文件对linuxcast执行替换操作,例如,先将以下表达式写成一个文件sededit,然后再调用sed –f sededit linuxcast:

s/mi/my/g

s/ore/are/g


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章