基本文本编辑diff,cut,grep sed,awk

######################文本处理工具awk grep sed...#########################

1.

1.diff比较两个文件的不同 diff [option] file1() file2()

diff -u file file.new >file.path##生成补丁文件

diff -r ki1 ki2                            ##比较目录

yum install patch -y##安装打补丁工具

patch-b file file.path##给老软件打补丁,且对老软件进行备份

 

2.grep##过滤字符

-i##或略大小写

-n##显示结果所在行的行号

-c##结果个数

-v##反向过滤

-r 关键字目录##在目录中过滤含有关键字文件

-E "关键字1|关键字2|....."##过滤多个关键字

 

3.sort##排序

-n##纯数字

-r##倒序

-u##去掉重复行

-t##指定分隔符

-k##指定排序的列

       -b             ##ignore-leading-blanks

 

 

4.tr       ##转换字符大小写

tr 'a-z' 'A-Z'<file##file中所有小写字符转换成大写

 

5.sed   [选项]‘[动作]’ 文件名   ##控制流输出

                -i               #edit files in place直接更改文本内容  -n               #sed一般把所有的数据输出到屏幕 加此选项只会对经过sed处理的的行为输入到屏幕

                -e               #允许多条sed命令编辑

 

sed '2i xiao'  /etc/passwd       #在第2行前添加xiao

sed '2a xiao'  /etc/passwd       #在第2行后添加xiao

sed '2c xiao'  /etc/passwd       #在替换第二行为xiao

sed 3d passwd##不显示文件中的第三行

sed 3,7d file##不显示文件中的3-7

sed 3,7p file ##重复显示文件中的3-7

sed -n 3,7p file ##只显示文件中的3-7

sed 's/nologin/westos/g'  /etc/passwd#替换输出中的nologinwestos

sed '1,5s/nologin/westos/g'  /etc/passwd##替换输出中1-5行的nologinwesots

sed '/games/,/nobody/s/nologin/westos/g' passwd##替换输出中的games字符到nobody字符之间的nologinwestos

sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' passwd##多条替换策略用-e连接

[root@westos mnt]# cat rule ##规则文件内容

s/nologin/westos/g

s/sbin/lee/g

[root@westos mnt]# sed -f rule  file ##使用规则文件更改输出

     1root:x:0:0:root:/root:/bin/bash

     2bin:x:1:1:bin:/bin:/lee/westos

     3daemon:x:2:2:daemon:/lee:/lee/westos

     4adm:x:3:4:adm:/var/adm:/lee/westos

 

 

 

6.cut    cut[-bn][file]cut[-c][file] cut[-df][file]  ###cut用于 “剪切 ”文件中的文本字段或列并将其显示到标准输出

                                  -c  ##以字符为单位进行分割

                                  -d  ##指定用于提取字段的分隔符默认tab

                                  -f  ##指定要从每行提取的字段 与-d一起使

                                  -b  ##以字节为单位进行分割 忽略多字节字符边界

                                  -n  ##取消分割多字节字符 仅与-b一起使用

 


7.awk    awk ‘{pattern + action}’  {filenames}

(1)命令行方式 awk [-F filed-separetor]  ‘commands’   input-file(s)其中commandawk真正命令  [-F域分隔符]是可选的 input-files待处理文件 默认域分隔符为空格

last -n 5 |awk ‘{print $1}’ 工作流程 : 读入有\n换行符的一条记录 然后将记录按指定的分隔符划分区域$0代表所有域$1代表第1个域...默认分隔符 空格或 tab

 

 

 cat /etc/passwd | awk 'BEGIN{FS=":"} {printf $1 "\t" $7 "\n" }'

例:cat /etc/passwd |awk -F ":" '{print $1 "\t" $7}'输出第一和第七个域

: cat /etc/passwd | awk -F ‘:’ ’BEGIN {print “name  shell“}  {print $1 “, “ $7}

     END{print “blue,bin/bash”}’

输出 name, shell

     root,/bin/bash

     bin , /bin/sh

      .....

     blue,bin/bash

工作流程 :先执行BEGIN然后读取文件 读如\n换行符分隔的一条记录 然后将记录按指定域说出 然后执行模式对应的action接着读第二条记录 。。直到读完所有记录 最后执行END      

           

cat /etc/passwd|awk -F ':' '$3>1024' | awk -F ':' 'BEGIN {print "name  shell"}  {print $1 "\t" $7 "\n"}'

name  shell

nfsnobody/sbin/nologin

 

 

例子: grep -Ei 'sh$|bash$|csh$' passwd | sed 's/bash/csh/g'|sort -n -t : -k 4|awk -F : '{print $1"\t" $7}'

 

root /bin/csh

kiosk /bin/csh

helon /bin/csh

 

grep -Ei 'sh$|bash$|csh$' passwd | sed 's/bash/csh/g'|sort -n -t : -k 4

root:x:0:0:root:/root:/bin/csh

kiosk:x:1000:1000:kiosk:/home/kiosk:/bin/csh

helon:x:1002:1002::/home/helon:/bin/csh

 

ifconfig br0 | sed  -n  2,5p|grep netmask|cut -d " " -f 16

 

172.25.254.255

 

7.uniq##处理重复行 输出无重复的行

-c##统计重复行的个数

-u##显示唯一的行

-d##显示复了的                                         

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值