当前位置: 首页 > news >正文

awk编程

cut 命令

-f : 指定第几列
-d : 指定分割符

例子: cut -d ":" -f 1,3 /etc/passwd

应用:磁盘报警


printf 命令

printf '%s %s %s\n' 1 2 3 4 5 6
printf '%s' $(cat /etc/passwd)

注意: $(cat /etc/passwd)


awk 命令

awk '条件1{动作1}条件2{条件2}...' 文件名

例子
awk '{printf $2 "\t" $6"\n"}' student.txt

磁盘报警 df -h | awk '{print $1 "\t" $5 "\t"}'
df -h | grep sda5 | awk '{print $5}' | cut -d "%" -f 1

BEGIN 在执行之前要执行的
awk 'BEGIN{print "test !!"} {print $2 "\t"}'

END 在执行完后执行的

关系运算
awk '$6 >= 80 {printf $2 "\n"}'


sed 命令

sed [选项] '[动作]' 文件名

选项
-n:只输出sed操作的第n行
-e:允许多个条件执行
-i:修改原文件

动作
a:添加行 sed '2a hello' test.txt 在第二行后追加hello
c:替换行 sed '2c hello' test.txt
i:插入行 sed '2i hello' test.txt 在第二行前加入hello
d:删除行 sed '2,4d' test.txt 删除2到4行数据
p:输出行 sed -n '2p' test.txt
s:替换字符串 sed '行s/旧字串/新字串/g'


排序
sort [选项] 文件名

-f:忽略大小写
-n:以数值排序
-r:取反
-t:指定分隔符
-k n[,m]:


统计命令
wc [选项] 文件名

-l 统计行数
-w 统计单词数
-m 统计字符数


条件判断

echo $? //查看上一条命令是否正确 0:成功 非0:失败

两个文件比较
文件1 -nt 文件2 文件1比文件2新
文件1 -ot 文件2 文件2比文件2旧
文件1 -ef 文件2 两个文件是否为同一个文件,判断硬连接

逻辑
-a 逻辑与
-o 逻辑或
! 逻辑非


-if 语句

if [ 判断 ];then
程序
fi

例子:

rate=$(df -h | grep /dev/ada5 | awk '{print $8}' | cut -d "%" -f1)
if [ $rate -ge 89 ];then
echo "/dev/ada5 is full"
if

备份数据脚本

date=$(date +%y%m%d)
size=$(du -sh /usr/local/mysql)

if [ -d /usr/local/mysql ]
then
echo 'Date is : $date' > /tmp/dbback/db.txt
echo 'Size is : $size' >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf mysql_$date.tar.gz /usr/local/mysql db.txt &>/dev/null
rm -rf /tmp/dbback/db.txt
else
mkdir /tmp/dbback
echo 'Date is : $date' > /tmp/dbback/db.txt
echo 'Size is : $size' >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf mysql_$date.tar.gz /usr/local/mysql db.txt &>/dev/null
rm -rf /tmp/dbback/db.txt
if

nmap 命令

判断apache是否启动

port=$(nmap -sT 127.0.0.1 | grep tcp | grep http | awk '{print $2}')
if [ "$port" == "open" ]
then
echo "$(date) httpd is ok";
eles
/etc/rc.d/init.d/httpd-start &>/dev/null
fi


for 循环

for i in 1 2 3 4
do
echo $i
done

批量解压缩

ls *.tar.gz > ls.log
for i in $(cat ls.log)
do
tar -zxf $i &>/dev/null
done
rm -rf ls.log

for((i=1;i<=100;i=i+1))
do
s=$(($s+$i))
done
echo "$s"


while 语句

while [ 条件判断 ]
do
程序
done

until 语句

until [ 条件判断 ]
do
程序
done

http://www.cnblogs.com/mchina/archive/2012/06/30/2571317.html

相关文章:

  • 24. 两两交换链表中的节点
  • 如何使Python完美升级到新版本
  • 子集
  • 源码编译安装LNMP环境及配置基于域名访问的多虚拟主机
  • Linux各目录及每个目录的详细介绍
  • 90分 蓝桥杯 算法提高 道路和航路 [ 最短路 ]
  • linux一次卸载多个软件
  • 《大话数据结构》读书笔记(一)
  • Tyvj3632|超级英雄Hero
  • 如何从mysql数据库中取到随机的记录
  • soapUI使用-DataSource获取oracle库中的参数
  • POJ - 1584 A Round Peg in a Ground Hole(判断凸多边形,点到线段距离,点在多边形内)...
  • 生产服务器环境最小化安装后 Centos 6.5优化配置备忘
  • 基于阿里云数加构建企业级数据分析平台
  • 关于 来源: volmgr Event ID: 46 故障转储初始化未成功 的问题
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 0x05 Python数据分析,Anaconda八斩刀
  • ES学习笔记(12)--Symbol
  • Java 多线程编程之:notify 和 wait 用法
  • js
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PHP 7 修改了什么呢 -- 2
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • React中的“虫洞”——Context
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • v-if和v-for连用出现的问题
  • 二维平面内的碰撞检测【一】
  • 技术胖1-4季视频复习— (看视频笔记)
  • 解析 Webpack中import、require、按需加载的执行过程
  • 前端_面试
  • 深度学习中的信息论知识详解
  • 双管齐下,VMware的容器新战略
  • 推荐一个React的管理后台框架
  • MPAndroidChart 教程:Y轴 YAxis
  • 如何在招聘中考核.NET架构师
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (6)设计一个TimeMap
  • (libusb) usb口自动刷新
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十五)使用Nexus创建Maven私服
  • (一)SpringBoot3---尚硅谷总结
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)JAVA中的堆栈
  • .gitignore文件---让git自动忽略指定文件
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET是什么