文件过滤命令
|:管道符
# 作用:将管道符左边命令的标准输出,交给管道符右边命令的标准输入来处理
grep:过滤输出内容
^:以...开头
$:以...结尾
*:匹配*前面的内容至少0次或多次
.:匹配任意字符
## 选项
-n:打印行号 number
-A:after 查看过滤内容的后N行
-B:before 查看过滤内容的前N行
-C:center 查看过滤内容的前、后N行
-v:取反
-E:可以过滤多个结果
-o:只打印出过滤内容
-i:不区分大小写
## 举例
# ^
[root@Y ~]# grep '^人' a.txt (以 人 开头的过滤显示)
人生若只如初见,何事秋风悲画扇。
[root@Y ~]# grep '^等' /root/a.txt (也可以绝对路径找)
等闲变却故人心,却道故人心易变。
# $
[root@Y ~]# grep '。$' a.txt (以句号结尾的过滤显示)
何事秋风悲画扇。
却道故人心易变。
泪雨零铃终不怨。
比翼连枝当日愿。
[root@Y ~]# grep '变。$' a.txt (连续的结尾也可以)
却道故人心易变。
[root@Y ~]# grep '\$' a.txt (加\会让$失去意义,直接过滤显示带$的)
比翼连枝当日愿$
# . 和 *
[root@Y ~]# grep '心.' a.txt (心. 会显示心后面任意字符)
等闲变却故人心,
却道故人心易变。
[root@Y ~]# grep '心' a.txt( 心 只显示含有心的字,不会高亮心后面的字符)
等闲变却故人心,
却道故人心易变。
心
[root@Y ~]# grep '心*' a.txt(不仅高亮心 而且会显示全文)
人生若只如初见,
何事秋风悲画扇。
等闲变却故人心,
却道故人心易变。
骊山语罢清宵半,
泪雨零铃终不怨。
何如薄幸锦衣郎,
比翼连枝当日愿。
a.1
b.3
c.5
d.34
心
# -n
[root@Y ~]# grep -n '心' a.txt( 显示序号)
3:等闲变却故人心,
4:却道故人心易变。
13:心
# -A -B -C
[root@Y ~]# grep '心' a.txt
等闲变却故人心,
却道故人心易变。
心
[root@Y ~]# grep -A 3 '心' a.txt(过滤显示心后面的三行,最后心因为后面没有了,--表示分割)
等闲变却故人心,
却道故人心易变。
骊山语罢清宵半,
泪雨零铃终不怨。
何如薄幸锦衣郎,
--
心
[root@Y ~]# grep -B 3 '心' a.txt(显示心前面的三行)
人生若只如初见,
何事秋风悲画扇。
等闲变却故人心,
却道故人心易变。
--
b.3
c.5
d.34
心
[root@Y ~]# grep -B 3 -A 3 '心' a.txt(显示心的前三行和后三行)
人生若只如初见,
何事秋风悲画扇。
等闲变却故人心,
却道故人心易变。
骊山语罢清宵半,
泪雨零铃终不怨。
何如薄幸锦衣郎,
--
b.3
c.5
d.34
心
[root@Y ~]# grep -C 3 '心' a.txt( C表示中间值 心 的上下个三行)(当要查看AB行列一样的情况使用过)
人生若只如初见,
何事秋风悲画扇。
等闲变却故人心,
却道故人心易变。
骊山语罢清宵半,
泪雨零铃终不怨。
何如薄幸锦衣郎,
--
b.3
c.5
d.34
心
# -v
[root@Y ~]# grep '人' a.txt(只显示带 人 的)
人生若只如初见,
等闲变却故人心,
却道故人心易变。
[root@Y ~]# grep -v '人' a.txt(取反,除了带 人 的都显示)
何事秋风悲画扇。
骊山语罢清宵半,
泪雨零铃终不怨。
何如薄幸锦衣郎,
比翼连枝当日愿。
a.1
b.3
c.5
d.34
心
# -E
[root@Y ~]# grep '人|心' a.txt(里面没有 人|心 内容 不会显示)
[root@Y ~]# grep -E '人|心' a.txt(可以过滤多个结果,带人和心的都过滤显示)
人生若只如初见,
等闲变却故人心,
却道故人心易变。
心
# -o
[root@Y ~]# grep '心' a.txt(显示带 心 的一整段)
等闲变却故人心,
却道故人心易变。
心
[root@Y ~]# grep -o '心' a.txt(只显示 心 的字)
心
心
心
# -i
[root@Y ~]# grep 'a' a.txt(只显示小写a)
a.1
[root@Y ~]# grep -i 'a' a.txt(显示大小写A)
a.1
A
# [a-zA-Z]
[root@Y ~]# grep '[a-z]' a.txt(显示az之间的所有字母)
a.1
b.3
c.5
d.34
[root@Y ~]# grep '[A-Z]' a.txt(显示AZ之间的所有字母)
A
B
C
ID
[root@Y ~]# grep '[a-zA-Z]' a.txt(显示AZ之间所有大小写的)
a.1
b.3
c.5
d.34
A
B
C
ID
[root@Y ~]# grep '[a-Z]' a.txt (可以这么写 但是不可以[A-z]因为根据ASCII表顺序排列字母,这个顺序有特殊符号)
a.1
b.3
c.5
d.34
A
B
C
ID
如[root@Y ~]# grep -E '[A-z]' a.txt
grep: Invalid range end
[root@Y ~]# grep '^[a-Z]' a.txt (显示以英文开头的所有)
a.1
b.3
c.5
d.34
A
B
C
ID
文件的上传和下载命令
# 如何把windows的文件上传到虚拟机里
rz(也可以直接拖)
# 如何把虚拟机的文件下载到windows里
sz 文件名
[root@Y ~]# sz /temp/a
(选择文件,上传到虚拟机)
## 需要安装lrzsz
[root@localhost ~]# yum install -y lrzsz
## 注意:只能虚拟机和物理机之间上传下载
## 外网下载命令
# 安装wget命令
[root@Y ~]# yum install -y wget
wget 下载地址
-O:指定下载的位置和文件的名字
文件查找命令
type -a 只针对系统内置命令
## 查找命令位置的命令 which
which 只能查找命令
## 举例
[root@Y ~]# which cat
/usr/bin/cat
[root@Y ~]# which cp
alias cp='cp -i'
/usr/bin/cp
[root@Y ~]# which grep
alias grep='grep --color=auto'
/usr/bin/grep
字符处理命令-排序
sort
## 语法
sort [选项]... File...
## 选项
-t:指定分隔符
-k:指定按照某一列,进行排序
-n:按照阿拉伯数字排序
-r:reverse 倒叙排序
## 举例
cat >> yjt.txt <<EOF
B:9
S:1
A:2
C:4
F:11
EOF
[root@Y ~]# cat yjt.txt
B:9
S:1
A:2
C:4
F:11
[root@Y ~]# sort yjt.txt(排列顺序,按照当前首位字符,在sort里,这是一列)
A:2
B:9
C:4
F:11
S:1
## 注意:默认按照每一行的第一个字符进行排序,如果字符相同就往后推,字母按照a-z的顺序排序,排序不修改源 文件内容
# -t -k
[root@Y ~]# sort -t ':' yjt.txt(默认:的第一行第一个字符)
A:2
B:9
C:4
F:11
S:1
[root@Y ~]# sort -t ':' -k 2 yjt.txt(按照:后的第二行的第一个字符排列)
S:1
F:11
A:2
C:4
B:9
[root@Y ~]# sort -t ':' -k 2 -n yjt.txt(按照:后的第二行的第一个字符排列,并且按照阿拉伯数字顺序)
S:1
A:2
C:4
B:9
F:11
# -r
[root@Y ~]# sort -rnt ':' -k 2 yjt.txt(倒序 而且''要在t后)
F:11
B:9
C:4
A:2
S:1