File: /run/media/kiosk/CA9C-5CE5/11.11/11.5(1) Page 1 of 3

**************unit6.文本处理工具*******

****1.diff(比较文件不同)

diff file file1             /*比较两个文件的不同

-c                     /*显示周围的行

-u                   /*按照同一个是输出生成补丁

-r                    /*比较两个目录中的文件的不同

patch file file.path           /*打补丁

-b                    /*备份原文件

***2.grep正则表达式(截取关键字所在行

grep 关键字符 文件|目录        /*在文件或目录中查找含有关键字的行

grep -i                 /*忽略大小写

-n                   /*显示关键字所在行

-c                   /*显示过滤结果的个数

-v                   /*反向过滤

-E "关键字1|关键字2"          /*过滤多个关键字

-r 目录                /*在目录中查找含有关键字的文件

注意:^关键字              /*以关键字开头

关键字$ /*以关键字结尾

wKiom1gkfU2igoJ7AAA6_Ho6oSY557.png

wKioL1gkfU3hmNgPAABUs872Vnw500.png

wKioL1gkfU6RKml2AACMVgsXMTs249.png

***3.cut(用于剪切文件中的文本子段或者将其显示出来)

cut                 /*截取字符

cut -d 分隔符            /*指定分隔符

cut -f 1,7             /*显示指定的列

cut -c 1-4             /*显示指定字符

ifconfig eth0 | grep inet | grep inet6 -v | cut -d "" -f 10

ifconfig eth0 | grep inet | grep inet6 -v | awk -F "" '{print $2}'

***4.sort /*排序

sort

-n                 /*纯数字排序

-u                 /*去冗余

|uniq -c              /*去除冗余并统计冗余次数

-k                 /*指定列

-t                 /*指定分隔符

***5.uniq

sort file |uniq -c         /*去除冗余并统计冗余次数

-d                 /*显示冗余行

-u                 /*显示唯一的行

***6.sed

sed 's/原字符/替换字符/g' file

sed -e ‘策略1’ -e ‘策略2’ file

sed -i file               /*把转换后的内容输入到指定文件

sed ‘3,5s/原字符/替换字符/g’ file /*3-5行转换

sed xd                /*屏蔽指定行

sed xp                /*复制指定行

sed -n xp              /*只显示指定行

sed -ne xp -ne yp file        /*指定复制3和5两行

sed -n 3,5p file /*复制3-5行

例子:sed -e 's/^\ *//g' file -e 's/\t/\ /g' -i file /*将file文件下面的以空格开头的和以tab键开头的替换掉

******一个脚本(将密码和帐号匹配起来)*************

#!/bin/bash

MAX=$(wc -l $1 | cut -d " " -f 1)     /*统计user的行数

for NUM in $( seq $MAX)          /*循环MAX次

do

USERNAME=$( sed -n ${NUM}p $1 )      /*复制第1,2,3行

PASSWD=$( sed -n ${NUM}p $2 )       /*复制第1,2,3行

useradd $USERNAME /*用户添加

echo $PASSWD | passwd --stdin $USERNAME /*这个选项用于从标准输入管道读入新的密码

done