awk 和sed
cut [选项] 文件名 默认分隔符是制表符
选项:
-f 列号: 提取第几列
-d 分隔符: 按照指定分隔符分割
cut的局限性 不能分割空格
awk
一个强大的文本分析工具
把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分在进行各种处理
语法:awk '条件1{动作1}.....' 文件名
eg:
df -h | awk '{print $1 $2}'
cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1"\t"$2"\t"$3}' --> BEGIN命令,一开始就执行
ifconfig eth1 | grep "inet addr:" 获取文件中 含有inet addr:这一行
ifconfig eth1 | grep "inet addr:" | awk -F: '{print $2}' |awk '{print $1}' 获取ip地址
sed
是一个非交互性文件流编辑器,它编辑文件或标准输入导出的文件拷贝
注:并不与初始文件打交道,它操作的只是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕
语法:sed [选项] '[动作]' 文件名
选项:
-n 使用安静(slient)模式,显示经过sed特殊处理的数据
-e 允许多点编辑
-i 直接修改读取的档案内容,而不是由屏幕输出 --> 改源文件
命令:
a\ 新增,a的后面可以接字串,在下一行出现
sed ’2a hive' cut.log
c\ 替换
d 删除
i\ 插入
p 打印
s 查找并替换 eg:2s/old/new /g
定时器
crontab命令允许用户提交、编辑、或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。可以使用它运行任意一个shell脚本或某个命令
crontab的命令格式
crontab -e
使用编辑器编辑当前的crontab文件
crontab文件格式
minute hour day-of-month month-of-year day-of-week commands
[0-59] [0-23] [1-31] [1-12] [0-6] 0表示周天 执行的命令
书写注意事项
全部不能为空,必须填入,不知道的用通配符*表示任何时间
每个时间段可以指定多个值,不连续得值用(,)间隔,连续的用(-)间隔
命令应该给出绝对路径
用户必须具有运行所对应的命令或程序的权限
*/2 每隔两分钟(..)执行
history命令
功能:帮助用户回忆执行过的命令
-c 清楚所有的历史命令
-w 把缓存中的历史命令写入历史命令保存文件~/.bash_history
!命令号 执行这条命令的历史命令
!字符串 执行以该字符串开头的最近的一条历史命令
ctrl+R
对历史命令的搜索
输入重定向
<
输出重定向
> >>
bash t2.sh > a.log 2> b.log 正确的日志输入到a,错误的输入到b
bash t2.sh > /dev/null 2> b.log 正确的日志不输入
shell脚本:awk和sed
最新推荐文章于 2022-11-02 17:45:47 发布