注:本章中所有命令格式只是处理文件中的文本,也可以另作他用,如 ls -l | sed -n 2p | awk '{print $1"-----"$2}'
#grep命令
#常用的一个用法:获取当前目录下所有文本文件中含有指定字符串的行
grep '指定字符串' . -r -n
#获取包含指定字符串的行
grep 指定字符串 文本文件名
或
grep "指定字符串中含有空格 要加引号" 文本文件名
#grep参数
-i 不区分大小写
-c 列举出现的行的个数
-v 获取不含指定字符串的行
#wc(word calculate)命令
#统计文本
wc -l 文本文件名 -->统计行数
wc -w 文本文件名 -->统计单词数
#sort命令
#排序(从第一个字符开始比较)
sort 文本文件名
#tac命令
#cat命令反过来写,用法与cat相同,但是从最后一行向上输出
#uniq命令
#去除重复行,但只会比较相邻的行,所以在使用uniq之前需要先sort
sort 文本文件名
uniq 文本文件名
#sed命令
#精准取行
sed -n 1p 文本文件 -->取第一行
sed -n 1,5p 文本文件 -->取1到5行
sed -n '$p' 文本文件 -->取最后一行
tac 文本文件 | sed -n 2 -->取倒数第二行
#替换
sed ' s/ABC/123/ ' 文本文件 -->将文本中每行第一个出现的ABC 替换成 123
sed ' s/ABC/123/g ' 文本文件 -->将文本中每行全部出现的ABC 替换成 123 (g为group)
sed " s/ABC/${res}/g " -->将文本中每行全部出现的ABC 替换成 变量res的值(注意" "号)
#插入字符串
sed ' 2 i xxx ' 文本文件 -->将 xxx 插入文本文件的第二行上面 (参数i=insert)
sed ' 2 a xxx ' 文本文件 -->将 xxx 插入文本文件的第二行下面 (参数a=append)
#插入文本文件
sed ' /ABC/r 文本文件1 ' 文本文件2 -->将文本文件1的内容插入文本文件2中 所有含ABC行 的下面
sed ' 2 r 文本文件1 ' '文本文件2' -->将文本文件1的内容插入文本文件2中的第二行下面
#cut命令
#截取字符
cut -c5-8 -->截取5到8列的字符
cut -c5-8,10-12 -->截取5到8、10到12列的字符
#awk命令
#截取列元素
ls -l | awk '{print $1 ,$2 ,$3 }' -->获取当前目录列表每行的第1、2、3列元素,并以空格隔开
ls -l | awk '{print $1 $2 $3 }' -->以空字符''隔开
ls -l | awk '{print $1"+++++"$2"*****"$3 }' -->以特定字符+++++、******隔开
#获取最后一列或倒数第几列
awk '{ print $NF }' -->获取最后一列
awk '{ print $(NF-1) }' -->获取倒数第二列
#awk格式化输出
ll | sed -n 1,5p | awk '{ printf "\n %-25s %-10s\n " , $(NF),$(NF-1) }'
#awk 进行四则运算
echo 1 2 3 | awk '{print $1 + $2 * $3 - $2**2}' --> 3
#scp命令 : 传输文件
#需要密码
scp /文件名/ 用户名@222.195.136.33:/上传到的路径/
scp 用户名@222.195.136.33:/下载文件的路径/文件名 /下载到的本地路径/
#crontab : 定时任务
crontab -e 打开crontab日志
编辑:
1-59/1 * * * * 执行的命令 --> 1分钟执行一次