三剑客
grep
3.主要参数
[options]主要参数:
-a
或--text 不要忽略二进制的数据。
-A
<显示列数>或--after-context=<显示列数> 除显示符合范本样式的那一列之外,并显示该列之后的内容。
-b
或--byte-offset 在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
-B
<显示列数>或--before-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前的内容。
-c或--count
计算符合范本样式的列数。
-C
<显示列数>或--context=<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d
<进行动作>或--directories=<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e
<范本样式>或--regexp=<范本样式> 指定字符串做为查找文件内容的范本样式。
-E或--extended-regexp
将范本样式为延伸的普通表示法来使用。
-f
<范本文件>或--file=<范本文件> 指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。
-F或--fixed-regexp
将范本样式视为固定字符串的列表。
-G或--basic-regexp 将范本样式视为普通的表示法来使用。
-h或--no-filename 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H或--with-filename 在显示符合范本样式的那一列之前,表示该列所属的文件名称。
-i或--ignore-case 忽略字符大小写的差别。
-l或--file-with-matches 列出文件内容符合指定的范本样式的文件名称。
-L或--files-without-match 列出文件内容不符合指定的范本样式的文件名称。
-n或--line-number 在显示符合范本样式的那一列之前,标示出该列的列数编号。
-q或--quiet或--silent 不显示任何信息。
-r或--recursive 此参数的效果和指定“-d recurse”参数相同。
-s或--no-messages 不显示错误信息。
-v或--revert-match 反转查找。
-V或--version 显示版本信息。
-w或--word-regexp 只显示全字符合的列。
-x或--line-regexp 只显示全列符合的列。
-y 此参数的效果和指定“-i”参数相同。
--help 在线帮助。
常用选项:#######################################################
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w : 被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
--color :将匹配到的内容以颜色高亮显示。
-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context
################################################################
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
sed
2、sed命令功能
[option]
-e 以选项中指定的script来处理输入的文本文件。
-f 以选项中指定的script文件来处理输入的文本文件。
-h或H显示帮助。
-n 取消默认的完整输出,仅显示script处理后的结果。
-i :直接修改读取的文件内容,而不是输出到终端。
-r 启用扩展正则
-V 显示版本信息。
[动作命令]
a 新增,a后接字串,并在新一行出现。
“a\” 最后一行新增字串。
c 取代,用此符号后的新文本替换当前行中的文本。
d 删除行
i 插入,i 的后面可以接字串。
p 打印,常与“sed -n”连用。
s 取代,与g连用,常与正则表达式搭配使用,例如例如1,20s/old/new/g。
n 读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理。
q 结束或退出sed。
w 将所选的行写入文件。
r 从文件中读取输入行。
y 将字符替换为另一字符,正则表达式除外。
l 列出非打印字符,包括控制字符。
-iSUFFIX 修改源文件,同时创建一个备份文件。例如:sed -i.bak '1,10d' test,生成一个test.bak备份文件。
#打印第二行
sed -n '2p' 1.txt
#打印第2行到第十行内容
sed -n '2,10p' 1.txt
#删除第n行
sed -n '2d' 1.txt
#删除包含关键字的行
sed -i -e '/string/d' fine
#替换
(不修改源文件)
sed 's/旧内容/新内容/g' 1.txt
(修改源文件)
sed -i 's/旧内容/新内容/g' 1.txt
#修改并备份
sed -i.bak '1,3s#docker02#docker#g' test.txt
#特殊符号& 代表被替换的内容
sed -r '1,3s#(.*)#--&--#g' test.txt
#文件另存为
sed 'w a.txt' test.txt
#特殊符号= 获取取行号
sed '=' test.txt
#一条sed语句执行多条sed命令
sed -i -e '19d;1,3s#docker#docker02#g' test.txt
#打印不可见字符l 和cat -A 一样效果
sed -n 'l' test.txt
awk
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
BEGIN 表示在处理任意行之前进行的操作。
END 表示在所有输入行处理完后进行处理。
$0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。
$NF是number finally,表示最后一列的信息,跟变量NF是有区别的,变量NF统计的是每行列的总数
awk -F '\t' 'BEGIN { OFS="\t" } NR>153&&NR<172 {print $1,$8,$23}'
指定输入分隔符:-F ‘\t’
指定输出分隔符:BEGIN { OFS="\t" }
指定行数(从153行到172行):NR>153&&NR<172
打印指定列:print $1,$8,$23
打印第n行
awk 'NR==2' /etc/passwd
打印第2行到第十行内容
awk 'NR==2,NR==5' /etc/passwd
倒数第二列
awk -F"/" '{print $(NF-1)}' /etc/passwd
#打印第2行第4列的
free -h|awk -F' ' 'NR==2 {print $4}'
已:为分隔符打印第三
find
find ./ -name “*.txt” | xargs rm #(删除当前目录下所有以txt结尾的文
find /home -size +512k # 查大于512k的文件
find /home -size -512k # 查小于512k的文件
find /home -links +2 # 查硬连接数大于2的文件或目录
find /home -perm 0700 # 查权限为700的文件或目录
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
find ./ -maxdepth 1 -name "*.txt" ##最大深度为1
find ./ -not -name "a.txt" ## 排除a.txt
find ./ ! -name "a.txt" #可以使用!代替 -not
find ./ -name "*.txt" -o -name "*.csv" ## 当使用多个条件进行查找时,加-o实现“或者”

浙公网安备 33010602011771号