查看IP可以用ip –a 或者 ipconfig
【grep】数据查找定位,
-o 只显示匹配内容
-i 忽略大小写
-n 显示行号
-v 不显示匹配行
-E 使用扩展正则
-r 递归搜索 grep 关键字 –r 文件目录
【awk】数据切片
格式一:awk 参数 脚本语句 {pattern {动作} } 目标文件
格式二:awk 参数 –f 脚本文件 目标文件
awk可以处理行数据和列数据,但一般是处理列数据
行分隔符是换行,列分隔符是连续的空格或者tab.$0代表全部
ps aux | awk ‘{print $1}’如果一条awk不存在pattern,那么作用于所有的数据,前面的例子是只有action(‘{print $1}’)
awk的默认是单引号,在单引号里的action如果牵扯到字符串需要用双引号。
例如awk ‘$1<=45 {printf “%s %s\n”,$1,”ewnvj” }’ test.txt
awk ‘/^ $/ {var = var+1} END {print var}’ t111
【awk内建变量】
FS 列分隔符: sudo awk –F: ‘{print $1}’/etc/passwd
FILENAME 当前输入的文件的文件名,该变量是只读的
NR 当前行的行号,只读的R代表record
NF 当前行所拥有的列数,只读变量F代表Filed
OFS 输出格式的列分隔符,缺省是空格
FS 输入文件的列分隔符,缺省是连续的空格和Tab
ORS 输出格式的行分隔符,缺省是换行符
RS 输入文件的行分隔符,缺省是换行符
【sed】数据修改,可以对文件进行增删改查操作,支持按行、正则,是从Unix的ed编辑器衍生出来的。跟vi差不多。
sed [选项][命令] 操作文件
-r 使用扩展正则
-i 直接修改源文件内容
sed –i.备份文件后缀 ‘规则/搜索内容/替换内容/范围’ 文件名
sed –i.bak ‘s/asd/ASD/g’ index.txt
* head 查看文件的前几行,默认10行
-n 静默模式,仅打印sed指令匹配的内容
-e 指定script来处理输入的文本文件
nl是查看文件内容并加上行号
nl /etc/passwd | sed –n –e ‘2.5p’ –e ‘10p’
-f 指定script文件来处理输入的文本文件
【sed】的动作
a:向匹配行下一行插入内容
i:向匹配行的上一行插入内容
d:删除,删除匹配行的内容
c:更改匹配行的内容
s:替换每一行的第一个内容
g:全部替换
p:打印,一般默认打印原本内容和打印的内容,加上-n就只打印匹配的内容
分组()圆括号括起来的正则表达式所匹配的字符串可以当成是变量的中使用,sed中使用的是\1,\2来获取第一个或者第二个变量。
Find找文件
【文件名】
(1)find ./ -name ‘文件名’ find先写文件路径再写参数
(2)find ./ -name ‘’???hhhh”
(3)find ./ -name “*hhh*”
【文件大小】
- find ./ -size +2k
- find ./ -size -5k
- find ./ -maxdepth 1 –tyoe f –size +3k
- size的find如果没有跟K或者M这些的时候默认是按照扇区大小512B (0.5K)
【文件类型】
- find ./ -type f
- 指定层级搜索 find ./ -maxdepth 2 –type f // 文件f
【exec】
管道在find中不生效
find ./ -maxdepth 1 –type f –size +2k –exec ls –l {} \; exec实际上执行{}里面得内容但是ls –l不能直接放在{}中。
【OK】
find ./ -maxdepth 1 –type f –size +2k –ok rm -rf {} \;
交互版的exec
【xargs】
xargs可以跟管道一起用,查询出来的结果分配批次处理。
find ./ -maxdepth 1 –type f –size +2k |xargs ls -ld;
,xargs是按照空格分批处理结果的,如果碰到特殊文件名的情况,比如含有空格就会出现异常“text text.txt”。
find ./ -maxdepth 1 –type f print0 |xargs -0 –ld;