2018.10.12 shell,awk

  1. Shell

今天主要在看Shell,基本的语法都过了一遍,个人感觉语法较为简单,没有很复杂的内容,只是有很多不一样的地方。

      变量,数组,字符串很灵活,相对简单。

不能直接运算,算数运算需要`expr`或者$()包住,关系、布尔运算用[]包住,符号也不一样,没有大于和小于号,而是用字母替换;还多了有文件的运算,很多也记不全。还有需要注意空格

      可以替换也是一大特点,变量和命令可以被替换。

      函数不必定义输入变量,直接使用时后面接上传入的变量;只能返回整数,且小于256,可以通过echo输出然后用变量接收。感觉十分不便。

    输入输出的重定向刚开始不太明白,后面想明白就和读写文件差不多,只是更加灵活,还可以合并。0代表标准输入,1代表标准输出,2代表错误输出,,根据这个进行重定向。关于Here Document只能大概明白是把开头和结尾符号之间的内容重定向,并不太明白具体的用处,感觉可能与日志有关。

      包含文件很简单,.或者source。

      总的来说不算太难,遇到的主要的问题就是运算,和函数返回。运算较麻烦,返回值也看了很久,目前感觉还不是很熟练。其他方面并未太多的深入学习。

 

     2.Awk

基本语法:awk [options] 'script' var=value file(s)

awk [options] -f scriptfile var=value file(s)

有一些常用命令选项,-F指定分隔符,-v赋值一个外部变量,只看了这两个例子,其他的还没来得及看。还有一些内置变量,比如行数,分隔符等,也并未来得及仔细看。

awk脚本有模式和操作组成。模式可以是/正则表达式/匹配,关系表达式,模式匹配表达式:~和!~,还有BEGIN、pattern,END语句块;操作由命令、函数和表达式组成,在大括号内,主要是赋值,输出,内置函数,控制流语句。

awk的结构分为BEGIN,patttern,END。首先执行BEGIN中的语句,一般与初始化有关;然后从从文件或者标准输入中读入一行,执行pattern语句块,逐行重复;最后执行END语句块。其中BEGIN,END都是可选的,pattern是必选且最重要的。

pattern默认是{print},输出所有行,可以设置模式筛选,然后进行操作,输出(可格式化输出,用printf)。

今天只是初步看了一下awk,结合一些例子进行了理解,大概了解了,awk功能丰富,有待进一步的学习掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值