中文域名可以做网站吗,saharan wordpress,小程序注册商标第几类,网站cname文本三剑客其二 
sed和awk 
grep就是查找文本当中的内容#xff0c;扩展正则表达式。 
sed 对文本内容进行增删改查 
sed是一种流编辑器#xff0c;一次处理一行内容。 
如果只是展示#xff0c;会放在缓冲区#xff08;模式空间#xff09;#xff0c;展示结束之后…文本三剑客其二 
sed和awk 
grep就是查找文本当中的内容扩展正则表达式。 
sed 对文本内容进行增删改查 
sed是一种流编辑器一次处理一行内容。 
如果只是展示会放在缓冲区模式空间展示结束之后会从模式空间把操作结果删除。 
一行一行处理处理完当前行才会处理下一行。直到文件末尾。 
sed的命令格式和操作选项 
sed -e 操作符 -e 操作符 文件1 文件2 
-e 表示可以跟多个操作符只要有一个操作-e可以省略。 
sed -e 操作符1;操作符2 文件1 文件2 
选项 
-e用于执行多个操作命令 
-f在脚本中定义好了操作符然后根据脚本内容的操作符对文件进行操作 
-i直接修改目标文件慎用 
-n仅显示script处理后的结果(不加-nsed会有两个输出结果加了-n之后就会把默认输出屏蔽只显示一个结果) 
-r扩展正则表达式 
操作符 
p打印结果 s替换替换字符串 
c替换替换指定行 
y替换替换单个字符多个字符替换必须和替换内容的字符长度保持一致。 
d删除删除行 
a增加在指定行的下面一行插入内容 
i增加在指定行的上面一行插入指定内容 
标出行号 
r在行后增加文本内容 
$a 在最后一行插入新的内容 
$i 在最后一行上一行插入新的内容 
$r 读取其他文件的内容然后插入到对象文件的最后一行。 
打印功能 
寻址打印 
[rootlocalhost opt]# sed -n ;p test1.txt 
1
13770325194
2
13131301010
3
111111111111 
打印最后一行 
[rootlocalhost opt]# cat -n test1.txt | sed -n $p 9  root1rootroot 
行号范围打印 
打印第二行到第六行 
[rootlocalhost opt]# cat -n test1.txt | sed -n 2,6p2  131313010103  1111111111114  5  6  aaacvvaada 
打印第二行和最后一行 
[rootlocalhost opt]# cat -n test1.txt | sed -n 2p;$p2  131313010109  root1rootroot 
打印奇数行 
[rootlocalhost opt]# cat -n test1.txt | sed -n p;n   #n的作用打印一行跳过下一行1  137703251943  1111111111115  7  root-root9  root1rootroot 
打印偶数行 
[rootlocalhost opt]# cat -n test1.txt | sed -n n;p   #n的作用是跳过一行打印下一行2  131313010104  6  aaacvvaada8  root 
如何对文本内容进行过滤 
[rootlocalhost opt]# cat -n test1.txt | sed -n /o/p    #过滤并打印包含o的行       //之间是包含的要过滤的内容7  root-root8  root9  root1rootroot 
使用正则表达式对文本内容进行过滤 
[rootlocalhost opt]# sed -n /^root/p  /etc/passwd    #以root为开头
root:x:0:0:root:/root:/bin/bash
[rootlocalhost opt]# sed -n /bash$/p  /etc/passwd    #以bash为结尾
root:x:0:0:root:/root:/bin/bash
zhang:x:1000:1000:zhang:/home/zhang:/bin/bash
dn:x:1001:1001::/home/dn:/bin/bash
xy102:x:1002:1002::/home/xy102:/bin/bash 
从指定行开始打印到第一个bash为结尾的行 
[rootlocalhost opt]# sed -n 42,/bash$/p  /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
zhang:x:1000:1000:zhang:/home/zhang:/bin/bash 
面试题1 
如何免交互删除文本内容。不删除文件。 
[rootlocalhost opt]# sed -i d  test2.txt 
[rootlocalhost opt]# cat test2.txt 
或者 
[rootlocalhost opt]# cat /dev/null  test2.txt
[rootlocalhost opt]# cat test2.txt sed 的删除操作 
[rootlocalhost opt]# sed -in 1,3d;p test2.txt
4
5
6
7
8 
匹配字符串删除行 
[rootlocalhost opt]# sed -n /1/,/5/d;p test2.txt
6
7
8 
面试题2 
如何免交换的方式删除空行 
sed的方式 
[rootlocalhost opt]# sed  /^$/d test1.txt 
13770325194
13131301010
111111111111
aaacvvaada
root-root
root
root1rootroot 
grep 
[rootlocalhost opt]# grep -v ^$ test1.txt 
13770325194
13131301010
111111111111
aaacvvaada
root-root
root
root1rootroot 
cat 
[rootlocalhost opt]# cat test1.txt | tr -s \n
13770325194
13131301010
111111111111
aaacvvaada
root-root
root
root1rootroot sed的替换 
s替换字符串 
[rootlocalhost opt]# sed -n s/root/test/gp /etc/passwd       #g是替换所有g换成数字几就替换每行第几个
test:x:0:0:test:/test:/bin/bash
operator:x:11:0:operator:/test:/sbin/nologin 
[rootlocalhost opt]# sed -n 4,6 s/^/#/p test1.txt    #注释4-6行
[rootlocalhost opt]# sed -n -e 4s/^/#/p -e 6s/^/#/p test1.txt      #注释4和6行 
首字母变成大写 
[rootlocalhost opt]# sed  s/[a-z]/\u/ test1.txt 
13770325194
13131301010
111111111111
Aaacvvaada
Root-root
Root
Root1rootroot
#u 是转换首字母大写的特殊符号\转义符 
将单词的字母全部变为大写 
[rootlocalhost opt]# sed  s/[a-z]/\u/g test1.txt 
13770325194
13131301010
111111111111
AAACVVAADA
ROOT-ROOT
ROOT
ROOT1ROOTROOT 
将大写转换为小写 
[rootlocalhost opt]# sed  s/[A-Z]/\l/ test3.txt 
aAA
bBB
cCC
dDD
#l把大写转换成小写的特殊字符\转义符 
[rootlocalhost opt]# sed  s/[A-Z]/\l/g test3.txt 
aaa
bbb
ccc
ddd
#g是将单词的所有字母大写转换为小写 
c 整行替换 
[rootlocalhost opt]# sed /IPADDR192.168.60.20/c IPADDR192.168.60.100 /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPEEthernet
DEVICEens33
ONBOOTyes
BOOTPROTOstatic
IPADDR192.168.60.100
NETMASK255.255.255.0
GATEWAY192.168.60.2
DNS1218.2.135.1
DNS2221.131.143.69 
y 单个字符替换 
[rootlocalhost opt]# sed y/abc/123/ test3.txt 
AAA
BBB
CCC
DDD
123 
增加 
a 在指定行下插入 
[rootlocalhost opt]# sed /AAA/a zhang test3.txt 
AAA
zhang
BBB
CCC
DDD
abc
ABD 
i 在指定行上一行插入新的内容 
[rootlocalhost opt]# sed /AAA/i zhang test3.txt 
zhang
AAA
BBB
CCC
DDD
abc
ABD 
r在行后增加文本内容 
[rootlocalhost opt]# sed /BBB/r test4.txt test3.txt 
AAA
BBB
zxc
CCC
DDD
abc
ABD 
$a 在最后一行插入新的内容 
[rootlocalhost opt]# sed $a shuai dn test3.txt 
AAA
BBB
CCC
DDD
abc
ABD
shuai dn 
$i 在最后一行上一行插入新的内容 
[rootlocalhost opt]# sed $i shuai dn test3.txt 
AAA
BBB
CCC
DDD
abc
shuai dn
ABD 
$r 读取其他文件的内容然后插入到对象文件的最后一行。 
[rootlocalhost opt]# sed $r test4.txt test3.txt 
AAA
BBB
CCC
DDD
abc
ABD
zxc 
使用sed命令对字符串和字符的位置进行互换 
[rootlocalhost opt]# echo chengqianshuai | sed -r s/(cheng)(qian)(shuai)/\3\1\2/
shuaichengqian
[rootlocalhost opt]# echo 成乾真的帅 | sed -r s/(.)(.)(.)(.)(.)/\5\4\3\2\1/
帅的真乾成 面试题3 
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
antlr-runtime-3.4.jar
aopalliance-1.0.jar
archaius-core-0.7.6.jar
asm-5.0.4.jar
aspectjweaver-1.9.5.jar
bcpkix-jdk15on-1.64.jar
bcprov-jdk15-1.46.jar
bcprov-jdk15on-1.64.jar
checker-compat-qual-2.5.5.jar 
将版本号显示出来 
grep 
[rootlocalhost opt]# cat -n 456.txt | grep -E \b[0-9][.][0-9][.][0-9]\b|\b[0-9][.][0-9]\b sed 
[rootlocalhost opt]# cat 456.txt | sed -r s/(.*)-(.*)(\.jar)/\2/
1.9.7
1.9.7
2.7.7
3.4
1.0
0.7.6
5.0.4
1.9.5
1.64
1.46
1.64
2.5.5 面试题4 
打印指定时间内的日志 
[rootlocalhost opt]# cat /var/log/messages | sed -r -n /Jun 21 12:00:01/,/Jun 21 13:00:01/p
Jun 21 12:00:01 localhost systemd: Created slice User Slice of root.
Jun 21 12:00:02 localhost systemd: Started Session 255 of user root.
Jun 21 12:00:02 localhost systemd: Removed slice User Slice of root.
Jun 21 12:01:01 localhost systemd: Created slice User Slice of root.
Jun 21 12:01:01 localhost systemd: Started Session 256 of user root.
Jun 21 12:01:01 localhost systemd: Removed slice User Slice of root.
Jun 21 12:10:01 localhost systemd: Created slice User Slice of root.
Jun 21 12:10:01 localhost systemd: Started Session 257 of user root.
Jun 21 12:10:01 localhost systemd: Removed slice User Slice of root.
Jun 21 12:20:01 localhost systemd: Created slice User Slice of root.
Jun 21 12:20:01 localhost systemd: Started Session 258 of user root.
Jun 21 12:20:01 localhost systemd: Removed slice User Slice of root.
Jun 21 12:30:01 localhost systemd: Created slice User Slice of root.
Jun 21 12:30:01 localhost systemd: Started Session 259 of user root.
Jun 21 12:30:01 localhost systemd: Removed slice User Slice of root.
Jun 21 12:40:01 localhost systemd: Created slice User Slice of root.
Jun 21 12:40:01 localhost systemd: Started Session 260 of user root.
Jun 21 12:40:01 localhost systemd: Removed slice User Slice of root.
Jun 21 12:50:01 localhost systemd: Created slice User Slice of root.
Jun 21 12:50:01 localhost systemd: Started Session 261 of user root.
Jun 21 12:50:01 localhost systemd: Removed slice User Slice of root.
Jun 21 13:00:01 localhost systemd: Created slice User Slice of root.