Linux文本过滤与处理命令

文本处理命令在Linux的使用过程中也是很基础的知识,我来总结一下linux文本处理命令的使用。

基础命令:

cat / more / less / grep / head / tail / wc  / uniq / cut / sort / join / paste      tr / tee /  split / spell / diff / printf /

1.cat 连接文件并显示内容

-n 对输出的文本进行编号
         -b 对输出的文本进行编号,但是不对空白行编号
         -s 将两行以上的空白行替换为一行空白行
         -E 在每一行的结尾显示“$”
         -T 用“^”I代替“TAB”作为显示

2.more 文件内容分屏查看

-d 当用户错误输入时产生提示符
         -f 计算实际行数
         -p 不卷页显示,而是清屏,然后显示内容
         +/<字符串>搜寻指定字符串,并从此处开始显示
         +num 从指定行开始显示

3.less 分屏显示文件内容
         -e 当文件显示结束后,自动离开
         -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
         -g 只标志最后搜索的关键词
         -i 忽略搜索时的大小写
        -m 显示类似more命令的百分比
        -N 显示每行的行号
        -o<文件名> 将less 输出的内容在指定文件中保存起来

   选择参数

按键功能如下:
        b 向后翻一页
        d 向后翻半页
        h 显示帮助界面
        Q 退出less 命令
        u 向前滚动半页
        y 向前滚动一行
       空格键 滚动一行
        回车键 滚动一页


4.head 显示文件头部内容

将打印文件的前10行道标准输出,如果不指定文件,将从标准输入中输入

-c<字节> 显示文件前N字节数
     -n<行数> 显示文件的前N行数

5.tail 输出文件尾部内容
      -f 循环读取,当文件内容增加时,持续显示新增在后面的内容,常用来监控日志文件
     -q 不显示处理信息
     -v 显示详细的处理信息
     -c<数目> 显示的字节数


6.wc 统计文件的字节数,单词数和行数

-c 显示字母数
      -l 显示行数
      -w 显示单词数

7.uniq 报告或忽略文件中的重复行

-c 显示重复次数
      -d 显示重复行
      -u 显示没有重复的行

8.cut 剪切删除文件中的指定段

-b=<列表> 只输出指定的字节数 <--bytes>
     -c=<列表> 只输出指定的字符 <--characters>
     -d= 使用定界符代替TAB键 <--delimiter>
     -f=<列表> 只输出指定的域。

9.sort 对文件进行行排序

-b 忽略行前的空格
    -c 检查是否已排序过
    -d 排序时只识别英文数字及空格
    -f 把小写字母看作大写字母
    -m 合并排序好的文件
    -n 按照数值排序
    -r 逆序排序

10 join 文件1 文件2

针对每一对具有相同内容的输入行,整合为一行写到标准输出,
默认的内容连接区块是由第一个空白符代表的分界符号。当文件1
或文件2 都被指定为"-"时,程序将从标准输入读取数据。

将两个文件
内容相同的行连接起来
[email protected]:~# cat test1 //显示文件test1 的内容
a 01
b 02
c 03
d 04
e 05
[email protected]:~# cat test2 //显示文件test2 的内容
a xxx
b www
c jjj
d kkk
e lll
[email protected]:~#

[email protected]:~# join test1 test2 //连接两个文件
a 01 xxx
b 02 www
c 03 jjj
d 04 kkk
e 05 lll
[email protected]:~# join test2 test1
a xxx 01
b www 02
c jjj 03
d kkk 04
e lll 05

11.split 将大文件切割成为小文件

    -d 使用数字而不是字母作为切割后的小文件的后缀;    -v 显示详细的处理信息    -b<字节> 每个分割文件的大小    -l<行数> 指定切割的行数作为切割文件的单位;    -C <数字> 指定输出到每一个文件的每一行的大小,数字后缀可以是b: 512(blocks)K: 1024(kibiBytes)KB: 1000(kiloBytes)M: 1024*1024(mebiBytes)MB: 1000*1000(megaBytes)G: 1024*1024*1024(gibiBytes)GB: 1000*1000*1000(gibaBytes)

12.tr

从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

  -d, --delete            删除匹配SET1 的内容,并不作替换  -s, --squeeze-repeats    如果匹配于SET1 的字符在输入序列中存在连续的                重复,在替换时会被统一缩为一个字符的长度  -t, --truncate-set1        先将SET1 的长度截为和SET2 相等

SET 是一组字符串,一般都可按照字面含义理解。解析序列如下:

  \NNN    八进制值为NNN 的字符(1 至3 个数位)  \\        反斜杠  \a        终端鸣响  \b        退格  \f        换页  \n        换行  \r        回车  \t        水平制表符  \v        垂直制表符  字符1-字符2    从字符1 到字符2 的升序递增过程中经历的所有字符  [字符*]    在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度  [字符*次数]    对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数  [:alnum:]    所有的字母和数字  [:alpha:]    所有的字母  [:blank:]    所有呈水平排列的空白字符  [:cntrl:]    所有的控制字符  [:digit:]    所有的数字  [:graph:]    所有的可打印字符,不包括空格  [:lower:]    所有的小写字母  [:print:]    所有的可打印字符,包括空格  [:punct:]    所有的标点字符  [:space:]    所有呈水平或垂直排列的空白字符  [:upper:]    所有的大写字母  [:xdigit:]    所有的十六进制数  [=字符=]    所有和指定字符相等的字符

13  tee 将输入的内容复制到标准输出。


14 paste 会把每个文件以列对列的方式,一列列地加以合并

    -d 指定间隔字符

[[email protected] lx138.com]# cat a.txt //合并文件的列
123
456
789
1010
10000
111111
000000
5555555
6666666
[[email protected] lx138.com]# cat b.txt //合并文件的列
aaa
bbb
bbb
bsss
ssss
weeee
rrrrrr
jjjjjjj
ooooooo
[[email protected] lx138.com]# paste a.txt b.txt //合并文件的列
123 aaa
456 bbb
789 bbb
1010 bsss
10000 ssss
111111 weeee
000000 rrrrrr
5555555 jjjjjjj
6666666 ooooooo
[[email protected] lx138.com]#

15 diff  以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录
    -b 忽略空格
    -B 忽略空白行
    -i 忽略大小写
    --brief 只报告两个文件是否相同,不报告详细的不同信息
    -c 使用上下文输出格式
    -d 改变算法,使得diff命令可能找到一个更小的文件差异
    -e 产生一个将文件1变成文件2的“ed script”
    -r 比较目录时递归比较子目录
    -q 不报告差异,只说明两者内容是否有差异
    -s 当比较的两个文件相同时报告信息

时间: 2024-08-13 19:46:41

Linux文本过滤与处理命令的相关文章

Linux文本处理常用命令

1.正则表达式 (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/.*.?等)组成.  (2)基本元字符集及其含义      ^ :只匹配行首.   如^a 匹配以a开头的行abc,a2e,a12,aaa,......      $ :只匹配行尾.   如^a 匹配以a结尾的行bca,12a,aaa,.......      * :匹配0个或多个此单字符. 如(a)* 匹配 空,a,aa,aaa,....      [] :只匹配[]内字符

linux下修改rm命令防止误删除

前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. 第一步: 先在home目录下创建一个叫username名字的目录(当然名字可以自定义),具体命令为:sudo mkdir username(自定义的名字) 这时候记得要用命令:sudo chmod 777 username(自定义的名字)来改变一下你的目录权限,因为在home目录下刚创建的目录是没

Linux上的free命令详解

Linux上的free命令详解 转自: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][1] = 24677460 FO[3][2] = 10321516 1          2          3    

Linux服务器通过aws命令行上传文件至S3

目的Linux服务器通过AWS命令行上传文件至S3 配置打开你的AWS控制台: 连接你的Linux服务器,按照以下步骤操作: # 安装pip yum -y install python-pip   # 安装awscli pip install awscli   # 初始化配置 aws configure # 做这一步时系统会要求你输入"访问密钥ID"."私有访问密钥"."默认区域名称"."默认输出格式",前两个在创建IAM用户

linux中的压缩命令详细解析(二)

我们在<Linux中的压缩命令详细解析(一)>中已经讲解了常见的三种压缩命令,下面我们开始讲解工作中最常用到的tar命令. 为了使压缩和解压缩变得简单,tar命令就应运而生了.那么究竟该如何使用呢? tar.gz格式: 压缩命令: tar -zcvf 压缩文件名 源文件名 举例: 把abc文件压缩成后缀为tar.gz格式的文件 tar -zcvf abc.tar.gz abc 解压缩命令: 举例:解压缩abc.tar.gz文件 tar -zxvf abc.tar.gz tar.bz2格式: 压

Linux下使用ps命令来查看Oracle相关的进程

Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [[email protected] www.linuxidc.com ~]$ ps -ef | grep tnslsnr oracle    1999 29986  0 09:47 pts/2    00:00:00 grep tnslsnr oracle    3647     1  0 Jul03 ?        00:00:34 /u01

linux之cp/scp命令+scp命令详解

linux之cp/scp命令+scp命令详解 名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录. 把计 -a 尽可能将档案状态.权限等资料都照原状予以复制. -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地. -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制. 范例: 将档案 aa

显示器 Linux 性能 18 (一个命令行工具传递)

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因.我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每一个Linux/Unix 系统管理员的工作.这些命令行工具能够在各种Linux系统下使用.能够用于监控和查找产生性能问题的解决办法.这个命令行工具列表提供了足够的工具.您能够挑选适用于您的监控场景的工具. 1.Top-Linux进程监控

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

在使用linux的过程中多多少少都会涉及到文本的操作,因此掌握一些文本操作的工具命令能大大的提高我们的工作效率. cat命令 cat命令的用途是链接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者是从标准输入读取内容并显示,它常与重定向符号配合使用. 1)命令格式 cat    [选项]    [FILENAME] 2)命令功能 将文件或标准输入组合输出到标准输出. 3)命令参数 -E:在每行结束处显示 $ -n:对输出的所有行编号 -s:不输出多行空行 4)常