资讯专栏INFORMATION COLUMN

awk编程

helloworldcoding / 2092人阅读

摘要:命令指定第几列指定分割符例子应用磁盘报警命令注意命令条件动作条件条件文件名例子磁盘报警在执行之前要执行的在执行完后执行的关系运算命令选项动作文件名选项只输出操作的第行允许多个条件执行修改原文件动作添加行在第二行后追加替

cut 命令

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

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

应用:磁盘报警


printf 命令

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

注意: $(cat /etc/passwd)


awk 命令

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

例子
awk "{printf $2 " " $6" "}" student.txt

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

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

END 在执行完后执行的

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


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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15067.html

相关文章

  • awk编程

    摘要:命令指定第几列指定分割符例子应用磁盘报警命令注意命令条件动作条件条件文件名例子磁盘报警在执行之前要执行的在执行完后执行的关系运算命令选项动作文件名选项只输出操作的第行允许多个条件执行修改原文件动作添加行在第二行后追加替 cut 命令 -f : 指定第几列 -d : 指定分割符 例子: cut -d : -f 1,3 /etc/passwd 应用:磁盘报警 printf 命令 ...

    godlong_X 评论0 收藏0
  • awk 入坑指北

    摘要:传入参数在命令行下通过参数还可以给脚本传入参数,比如内置函数内置了很多字符串处理以及数学运算方面的函数,常用的如返回在中出现的索引。 awk(/ɔːk/) 是 *nix 下一种强大的文本处理工具,其名称取自三位作者 Alfred Aho,Peter Jay Weinberger,Brian Wilson Kernighan。awk 提供的功能包括不仅限于正则匹配、流控制、算术运算、甚至...

    Vultr 评论0 收藏0
  • SegmentFault 技术周刊 Vol.19 - Linux 文本处理三利器

    摘要:所以,本期周刊将介绍命令行世界中最常用的文本处理命令三巨头,让它们带你初步领略命令行的强大。简单的,可以直接理解为是一个数据处理工具,倾向于将一行文本分成数个字段来处理,适合小型数据的处理。 showImg(https://sfault-image.b0.upaiyun.com/226/799/2267992322-586b7c52ed9fc); 之前看过一篇文章《当我们 chmod ...

    hightopo 评论0 收藏0
  • Linux三剑客之awk详解

    摘要:也支持大量的正则表达式模式,大部分与支持的元字符类似,而且正则表达式是玩转三剑客的必备工具。正则匹配操作符用于对记录或区域的表达式进行匹配。支持的关系运算符运算符含义示例小于小于或等于。输入区域分隔符,默认是空格。 第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告。 awk不仅仅是linux系统中的一个命令,而且是一种编程语言;它可以用来处理数...

    Zack 评论0 收藏0
  • awk删除docker历史镜像

    摘要:初步列了以下方案用实现擅长,通过重定向将的输出传给,处理完后执行系统命令清除镜像。对镜像列表进行去重操作可以以镜像名称为进行去重获取历史镜像要保留最近个镜像清除历史镜像,其实就是保留数据前行,有个内置变量保存当前处理行编号。 背景 虽然对awk早有耳闻,据说是个很强大的工具,但一直没机会去了解和使用,最近碰到一个需求,用awk轻松解决,才真正一窥它的厉害。需求是这样的,应用每次升级都会...

    lentoo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<