awk-grep-sed-head-tail7种命令实践
1、sequence==seq序列
[root@localhost ~]# seq 6
1
2
3
4
5
6
[root@localhost ~]# seq 2 6
2
3
4
5
6
[root@localhost ~]# seq 1 2 6
1
3
5
列子:如何从100的序列,取出20到30的数字
[root@localhost ~]# seq 100 >test.txt
[root@localhost ~]# cat test.txt
[root@localhost ~]# head -30 test.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30
2、sed stream editor 流编辑器,实现对文件的增删改替换查看
sed -n '20,30’p test.txt
-n代表取消默认输出
'20,30’代表要输出的行数内容
p:代表打印
[root@localhost ~]# sed -n '20,30’p test.txt
20
21
22
23
24
25
26
27
28
29
30
取出一行数据
[root@localhost ~]# sed -n '20’p test.txt
20
(1)sed替换文本中字符串名称
sed “s#oldgirl#xiaoming#g” oldboy.txt 注意此处只是改输出内容
sed -i “s#oldgirl#xiaoming#g” oldboy.txt 此处可以改文本里面的内容
g与s联合使用时,表示对当前行全局匹配替换
S常说的查找并替换,用一个字符串替换成另一个
-i:代表修改内容
[root@localhost ~]# echo ‘oldboy oldgirl’ >oldboy.txt
[root@localhost ~]# cat oldboy.txt
oldboy oldgirl
[root@localhost ~]# sed “s#oldgirl#xiaoming#g” oldboy.txt
oldboy xiaoming
[root@localhost ~]# mkdir -p /oldboy/test
[root@localhost ~]# cd /oldboy/
[root@localhost oldboy]# ls
ett oldboy oldboyson oldboy_son oldgirl test
[root@localhost oldboy]# echo “oldboy” >test/del.sh
[root@localhost oldboy]# echo “oldboy” >test.sh
[root@localhost oldboy]# echo “oldboy” >.sh
[root@localhost oldboy]# tree.
|-- ett
| -- test |-- oldboy |-- oldboy_son |-- oldboyson |-- oldgirl |-- test |
– del.sh
`-- test.sh
[root@localhost oldboy]# find /oldboy/ -type f -name ‘.sh’|xargs cat
oldboy
oldboy
oldboy
[root@localhost oldboy]# **find /oldboy/ -type f -name '.sh’|xargs**
/oldboy/test.sh /oldboy/.sh /oldboy/test/del.sh
[root@localhost oldboy]# find /oldboy/ -type f -name ‘*.sh’|xargs sed -i 's#oldboy#oldgirl#g’
[root@localhost oldboy]# find /oldboy/ -type f -name ‘*.sh’|xargs cat
oldgirl
oldgirl
oldgirl
[root@localhost oldboy]# sed -i ‘s#oldgirl#old#g’ find /oldboy/ -type f -name "*.sh"
[root@localhost oldboy]# find /oldboy/ -type f -name ‘*.sh’|xargs cat
old
old
old
3、awk
NR:代表行号
&&:代表并且的意思 且俩边成立
linux中一个等号代表赋值;俩个等号才代表等于号
[root@localhost ~]# awk ‘NR>19&&NR<31’ test.txt
20
21
22
23
24
25
26
27
28
29
30
4、grep
-A:除了显示匹配的一行之外,并显示改行之后的num行
[root@localhost ~]# grep 20 -A 10 test.txt
20
21
22
23
24
25
26
27
28
29
30
-C:除了显示匹配的一行之外,并显示该行前后各num行
[root@localhost ~]# grep 25 -C 5 test.txt
20
21
22
23
24
25
26
27
28
29
30
-B:除了显示匹配的一行之外,并显示该行之前的num行
[root@localhost ~]# grep 30 -B 10 test.txt
20
21
22
23
24
25
26
27
28
29
30