文件管理 三

【文件管理 三】赋料扬雄敌,诗看子建亲。这篇文章主要讲述文件管理 三相关的知识,希望能为你提供帮助。
[TOC]
文件过滤命令

|:管道符
# 作用:将管道符左边命令的标准输出,交给管道符右边命令的标准输入来处理


grep:过滤输出内容

^:以...开头
# 举例:
[root@localhost < sub> ]# cat a.txt
北国风光,千里冰封,万里雪飘。
望长城内外,惟余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还看今朝。
[root@localhost < /sub> ]# grep ^北 a.txt
北国风光,千里冰封,万里雪飘。

$:以...结尾
# 举例:
[root@localhost < sub> ]# grep 。$ a.txt (以句号结尾的)
北国风光,千里冰封,万里雪飘。
望长城内外,惟余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还看今朝。

[root@localhost < /sub> ]# grep 朝。$ a.txt (以朝 。 为结尾的)
俱往矣,数风流人物,还看今朝。

*:匹配*前面的内容至少0次或多次

.:匹配任意字符
# 举例:
[root@localhost < sub> ]# cat a.txt
北国a风光,千里冰封,万里雪飘。
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此a多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成a吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还a看今朝。
[root@localhost < /sub> ]# grep a. a.txt (显示 含有a和a后面一位。会将a和a后面一位高亮显示出来)
北国a风光,千里冰封,万里雪飘。
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
江山如此a多娇,引无数英雄竞折腰。
一代天骄,成a吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还a看今朝。

[root@localhost < sub> ]# grep a a.txt (只显示 含有a的。只会将a高亮显示出来)
北国a风光,千里冰封,万里雪飘。
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
江山如此a多娇,引无数英雄竞折腰。
一代天骄,成a吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还a看今朝。


# 选项
-n:打印行号 number
# 举例:
[root@localhost < /sub> ]# grep -n a a.txt (将含有a的行号显示出来)
1:北国a风光,千里冰封,万里雪飘。
2:望长城内外,惟a余莽莽;大河上下,顿失滔滔。
5:江山如此a多娇,引无数英雄竞折腰。
7:一代天骄,成a吉思汗,只识弯弓射大雕。
8:俱往矣,数风流人物,还a看今朝。

-A:after     查看过滤内容的后N行
# 举例:
[root@localhost < sub> ]# grep 望 a.txt
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
[root@localhost < /sub> ]# grep -A 3 望 a.txt (显示含有 望 以及后面的三行)
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此a多娇,引无数英雄竞折腰。

-B:before   查看过滤内容的前N行
# 举例:
[root@localhost < sub> ]# grep -B 3 一 a.txt (显示含有一 的内容,以及它的前三行)
须晴日,看红装素裹,分外妖娆。
江山如此a多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成a吉思汗,只识弯弓射大雕。

[root@localhost < /sub> ]# grep -A 2 -C 3 须 a.txt (显示含有 须 的内容以及它的后两行和前三行)
北国a风光,千里冰封,万里雪飘。
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此a多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。


-C:center   查看过滤内容的前、后N行
# 举例:
[root@localhost < sub> ]# grep -C 2 江 a.txt (显示含有 江 的内容以及它的前后各两行内容)
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此a多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成a吉思汗,只识弯弓射大雕。

-v:取反
# 举例:
[root@localhost < /sub> ]# grep -v 惜 a.txt (这个就是不会显示含有 惜 的内容的哪一行)
北国a风光,千里冰封,万里雪飘。
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此a多娇,引无数英雄竞折腰。
一代天骄,成a吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还a看今朝。

-E:可以过滤多个结果
# 举例:
[root@localhost < sub> ]# grep -E 千|山|大 a.txt 可以显示含有 千 山 大 的内容(中间必须要有管道符 | )
北国a风光,千里冰封,万里雪飘。
望长城内外,惟a余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
江山如此a多娇,引无数英雄竞折腰。
一代天骄,成a吉思汗,只识弯弓射大雕。

-o:只打印出过滤内容
# 举例:
[root@localhost < /sub> ]# grep -o 山 a.txt (只会过滤出你输入的这个内容)



[root@localhost < sub> ]# grep 山 a.txt (这个是过滤出含有 山 的内容)
山舞银蛇,原驰蜡象,欲与天公试比高。
江山如此a多娇,引无数英雄竞折腰。


-i:不区分大小写
# 举例:
[root@localhost < /sub> ]# cat b.txt
TYUIOERTYUsdfgh
DFGHsdfghjdfg
XCVBNMdfghdfgh
WERTYUfghjcvb
DFGHJxcvbn
DFGHJKL
[root@localhost < sub> ]# grep h b.txt (只会显示含有小写的 h 的内容)
TYUIOERTYUsdfgh
DFGHsdfghjdfg
XCVBNMdfghdfgh
WERTYUfghjcvb
[root@localhost < /sub> ]# grep H b.txt (只会显示含有大写 H 的内容)
DFGHsdfghjdfg
DFGHJxcvbn
DFGHJKL
[root@localhost < sub> ]# grep -i h b.txt (不管大小的 H 还是小写的 h 只要含有 h 的内容都会显示出来)
TYUIOERTYUsdfgh
DFGHsdfghjdfg
XCVBNMdfghdfgh
WERTYUfghjcvb
DFGHJxcvbn
DFGHJKL

[root@localhost < /sub> ]# grep [a-z] b.txt (会显示含有 a到z 的内容)
TYU IOER TYUsdfgh
DFG Hsdfgh jdfg
XCVB NMdf ghdfgh
WER TYUf ghjcvb
DFGH Jxcvbn

[root@localhost < sub> ]# grep [a-c] b.txt (会显示 a到c 的内容)
WER TYUf ghjcvb
DFGH Jxcvbn

[root@localhost < /sub> ]# grep -E [a-Z] b.txt (会显示小a到大Z的内容【大Z到小a的不行,因为ask码表】)
TYU IOER TYUsdfgh
DFG Hsdfgh jdfg
XCVB NMdf ghdfgh
WER TYUf ghjcvb
DFGH Jxcvbn
DFG HJKL

[root@localhost < sub> ]# grep -E [a-zA-Z] b.txt(这样的写法也可以。意思含有是小a到小z,大A到大Z的内容都会显示出来)
TYU IOER TYUsdfgh
DFG Hsdfgh jdfg
XCVB NMdf ghdfgh
WER TYUf ghjcvb
DFGH Jxcvbn
DFG HJKL


[root@localhost < /sub> ]# grep -E g|j b.txt (会显示含有g和j以及g和j开头的内容)
TYU IOER TYUsdfgh
DFG Hsdfgh jdfg
XCVB NMdf ghdfgh
WER TYUf ghjcvb

[root@localhost ~]# grep ^[a-F] b.txt (这个意思是在 当前 这列 里面含有小a到大F的内容。【在虚拟机里如果没有分隔符,那么将会视为一列】)
DFG Hsdfgh jdfg
DFGH Jxcvbn
DFG HJKL

文件的上传和下载命令
# 如何把windows的文件上传到虚拟机里
rz
# 如何把虚拟机的文件下载到windows里
sz 文件名
# 举例:
[root@localhost ~]# sz huangzi.png

# 需要安装lrzsz
yum install -y lrzsz
# 注意:只能虚拟机和物理机之间上传下载

# 外网下载命令
# 安装wget命令
yum install -y wget
wget 下载地址
-O:指定下载的位置和文件的名字

文件查找命令
type -a 只针对系统内置命令
# 举例:
[root@localhost < sub> ]# type -a cat
cat is /usr/bin/cat

# 查找命令位置的命令 which
which 只能查找命令
# 举例:
[root@localhost < /sub> ]# which cat
/usr/bin/cat

[root@localhost ~]# which grep
alias grep=grep --color=auto
/usr/bin/grep

字符处理命令-排序
sort
# 语法
sort [选项]... File...

# 举例:
[root@localhost < sub> ]# cat a.txt
q; 4
s; 5
v; 3
h; 6
l; 1
g; 3
[root@localhost < /sub> ]# sort a.txt
g; 3
h; 6
l; 1
q; 4
s; 5
v; 3
# 注意:默认按照每一行的第一个字符进行排序,如果字符相同就往后推,字母按照a-z的顺序排序,排序不修改源文件内容

# 选项
-t:指定分隔符
# 举例:
[root@localhost < sub> ]# sort -t ; a.txt (以;为分隔符进行排序)
g; 3
h; 6
l; 1
q; 4
s; 5
v; 3

-k:指定按照某一列,进行排序
[root@localhost < /sub> ]# sort -t ; -k 2 a.txt (以;为分隔符,按第二列进行排序)
l; 1
g; 3
v; 3
q; 4
s; 5
h; 6

-n:按照阿拉伯数字排序
# 举例:
[root@localhost < sub> ]# cat a.txt
q; 4
s; 5
v; 3
h; 6
r; 7
l; 11
g; 3
[root@localhost < /sub> ]# sort -t ; -k 2 -n a.txt(按照阿拉伯数字排列)
g; 3
v; 3
q; 4
s; 5
h; 6
r; 7
l; 11

-r:reverse 倒叙排序
# 举例:
[root@localhost < sub> ]#sort -rnt ; -k 2 a.txt
l; 11
r; 7
h; 6
s; 5
q; 4
v; 3
g; 3

# 课堂练习题
[root@localhost < /sub> ]# cat > > paixuti.txt < < EOF
> 192.168.3.1 00:0F:AF:81:19:1F
> 192.168.3.2 00:0F:AF:85:6C:25
> 192.168.3.3 00:0F:AF:85:70:42
> 192.168.2.20 00:0F:AF:85:55:DE
> 192.168.2.21 00:0F:AF:85:6C:09
> 192.168.2.22 00:0F:AF:85:5C:41
> 192.168.0.151 00:0F:AF:85:6C:F6
> 192.168.0.152 00:0F:AF:83:1F:65
> 192.168.0.153 00:0F:AF:85:70:03
> 192.168.1.10 00:30:15:A2:3B:B6
> 192.168.1.11 00:30:15:A3:23:B7
> 192.168.1.12 00:30:15:A2:3A:A1
> 192.168.1.1 00:0F:AF:81:19:1F
> 192.168.2.2 00:0F:AF:85:6C:25
> 192.168.3.3 00:0F:AF:85:70:42
> 192.168.2.20 00:0F:AF:85:55:DE
> 192.168.1.21 00:0F:AF:85:6C:09
> 192.168.2.22 00:0F:AF:85:5C:41
> 192.168.0.151 00:0F:AF:85:6C:F6
> 192.168.1.152 00:0F:AF:83:1F:65
> 192.168.0.153 00:0F:AF:85:70:03
> 192.168.3.10 00:30:15:A2:3B:B6
> 192.168.1.11 00:30:15:A3:23:B7
> 192.168.3.12 00:30:15:A2:3A:A1
> EOF
[root@localhost ~]# sort -t . -k 4 -n paixuti.txt (以 . 为分隔符的第4列按照阿拉伯数字排序)
192.168.1.1 00:0F:AF:81:19:1F
192.168.3.1 00:0F:AF:81:19:1F
192.168.2.2 00:0F:AF:85:6C:25
192.168.3.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.3.3 00:0F:AF:85:70:42
192.168.1.10 00:30:15:A2:3B:B6
192.168.3.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.1.11 00:30:15:A3:23:B7
192.168.1.12 00:30:15:A2:3A:A1
192.168.3.12 00:30:15:A2:3A:A1
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.20 00:0F:AF:85:55:DE
192.168.1.21 00:0F:AF:85:6C:09
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:5C:41
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.152 00:0F:AF:83:1F:65
192.168.1.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.0.153 00:0F:AF:85:70:03

??博客??

    推荐阅读