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

惠州公司网站建设价格jsp网站购物车怎么做

惠州公司网站建设价格,jsp网站购物车怎么做,无锡自助建站软件,做网站选哪个语言awk是一条命令#xff0c;也可以说是一种编程语言, 数据来源可以来自stdin#xff0c;一个或多个文件。它支持用户自定义函数和动态正则表达式等先进功能#xff0c;是linux/unix下的一个强大编程工具。awk有很多内建的功能#xff0c;比如数组、函数等#xff0c;这是它和… awk是一条命令也可以说是一种编程语言, 数据来源可以来自stdin一个或多个文件。它支持用户自定义函数和动态正则表达式等先进功能是linux/unix下的一个强大编程工具。awk有很多内建的功能比如数组、函数等这是它和C语言的相同之处灵活性是awk最大的优势。 本文默认你有一门编程语言的基础如js, c\c, php等 文章目录 一、入门awk脚本基本结构 二、使用脚本文件三、特殊字符的输出四、内置变量1. $0示例2. $n示例3. FS4. NF5. NR6. OFS7. ORS8. RS9. OFMT你真的会了吗总结4.1 数据变量4.2 控制变脸4.3 输出格式变量 五、数学运算5.1 算术运算符5.2 赋值运算符 六、条件判断6.1 比较运算符6.2 逻辑运算符6.3 正则表达式 七、其它运算符7.1 三目运算符7.2 空格连接符 八、跳过后面指令参考 一、入门 从stdin读取数据 echo 123 | awk {print}{} 是一个循环的语法循环文件中的每一行使用print默认打印每一行。 以下是test.txt文件的内容 123 456 789awk {print} test.txt输出 123 456 789打印字符串 awk {print hello world} test.txt# 输出 hello hello hello如果使用print指令的时候可以指定变量此时就打印变量的值 以下是传递外部变量的示例 awk {print a} ahello test.txt# 输出 hello hello hello指定多个变量的值打印多个变量时使用空格或者字符串隔开 awk {print a aa aaa} ahello aa aaaworld test.txt# 输出 hello world hello world hello worldawk {print a aaa} ahello aaaworld test.txt # 使用字符串隔开 # 输出 hello world hello world hello worldawk脚本基本结构 awk BEGIN{ print start } pattern{ commands } END{ print end } file看起来很复杂的样子中间的pattern我们就在上面用过 echo 123 | awk {print}上面的 {print} 就是pattern 可以发现一共有三个语句块 BEGIN pattern END 每个语句块使用{} 包裹。 BEGIN语句块 在读取文件的第一行前被执行pattern语句块 每读取一行都会执行该语句块END语句块 在读取文件的所有内容后被执行 BEGIN语句块 awk BEGIN{print start} test.txt# 输出 start加上 pattern语句块 awk BEGIN{print start}{print} test.txt# 输出 start 123 456 789加上end语句块 awk BEGIN{print start}{print}END{print end} test.txt# 输出 start 123 456 789 end二、使用脚本文件 使用 -f 来指定脚本文件 比如这条指令 awk BEGIN{print start}{print}END{print end} test.txt我们可以将命令行上的脚本写入在文件中执行写入文件有以下几个好处 命令行简洁增加脚本可阅读性 test.awk 文件 BEGIN{print start}{print}END{print end}awk -f test.awk test.txt# 输出 start 123 456 789 end也可以这样编写脚本,让脚本有更好的可阅读性。 test.awk BEGIN{print start }{print }END{print end }或者这样 BEGIN{print start}{print}END{print end}使用 ; 或者回车来执行多条指令 print指令最后都会使用换行进行输出 {print helloprint world }awk {aaahello;print aaa}三、特殊字符的输出 \\ \自身 \$ 转义$ \t 制表符 \b 退格符 \r 回车符 \n 换行符 \c 取消换行四、内置变量 $0 # 当前处理的文本内容 $n # n为数字表示第n个字段 FILENAME # 当前输入文件的名。 FS # 字段分隔符默认是任何空格。 NF # 表示字段数在执行过程中对应于当前的字段数。 NR # 表示记录数在执行过程中对应于当前的行号。 OFMT # 数字的输出格式默认值是%.6g。 OFS # 输出字段分隔符默认值是一个空格。 ORS # 输出记录分隔符默认值是一个换行符。 RS # 记录分隔符默认是一个换行符。修改 test.txt 进行示例 1 2 3 4 5 6 7 8 91. $0示例 awk {print line - $0} test.txt# 输出 line -1 2 3 line -4 5 6 line -7 8 92. $n示例 awk {print line - $1} test.txt# 输出 line -1 line -4 line -7awk {print line - $2} test.txt# 输出 line -2 line -5 line -8awk {print line - $3} test.txt # 这条命令是什么聪明的同学们应该已经会抢答了3. FS FS 是分割符是任意多的空白字符使用正则就是\s* 修改 test.txt 1 2 3 4 5 6 7 8 9awk {print $1 - $3} test.txt# 输出 1 - 3 4 - 6 7 - 9很厉害有木有。即使空格不一致也能精准的获取我们想要的列 如果我们修改FS会发生什么呢这里先修改 test.txt 文件 1:2:3:4 5:6:7:8将FS修改为: awk BEGIN{FS:}{print 第一列-$1 | 第二列- $2} test.txt# 输出 第一列-1 | 第二列-2 第一列-5 | 第二列-6此时判断列的分割符就变了 使用 -F 参数能达到和FS变量一样的效果 test.sh awk -F : {print 第一列-$1 | 第二列- $2} test.txt4. NF NF就是记录的列数这个多少列就是看使用FS分割符分割当前行时有多少列 修改 test.txt 1 2 3 4 5 6 7 8 9 10 11 12 13awk {print 第一行有 NF 列} test.txt# 输出 第一行有 3 列 第一行有 4 列 第一行有 6 列也可以配合 $n来获取最后一列 awk {print $NF} test.txt# 输出 3 7 135. NR 当前操作的是哪一行 test.txt 123 456 789awk {print 这是第 NR 行} test.txt# 输出 这是第1行 这是第2行 这是第3行6. OFS 输出字段分隔符默认值是一个空格 test.txt 1 2 3 4 5 6 7 8 9使用 , 来表示输出一个字段 awk {print $1, $2, $3} test.txt# 输出 1 2 3 4 5 6 7 8 9以上输出一个字段时默认为一个空格此时我们修改OFS的值 awk BEGIN{OFS | }{print $1,$2,$3} test.txt# 输出 1 | 2 | 3 4 | 5 | 6 7 | 8 | 97. ORS 输出记录分隔符 默认是换行符 test.txt 文件 第一行 1 第二行 2 第三行 3awk BEGIN{ORS - }{print $1} test.txt# 输出 第一行 - 第二行 - 第三行 - 8. RS 记录分隔符默认是一个换行符 test.txt 123|456|789awk BEGIN{RS|}{print} test.txt# 输出 123 456 789原本处理文件是以一行为一次处理现在以|分隔为一次处理 9. OFMT 用于如何输出数字OFMT 默认的输出格式是 “%.6g”它表示只输出6位数字 echo 1 | awk {print 3.123456789;print 111111.89999;}# 输出 3.12346 111112可以看到输出是会进行四舍五入的并且默认只会保存6个数字 该格式化只对数字有用 对字符串是无效的 echo 1 | awk {print 111111.89999;}# 输出 111111.89999test.txt 3.243243434242 3.243243434242 3.243243434242 3.243243434242awk {print $1} test.txt# 输出 3.243243434242 3.243243434242但是可以使用号强制转换字符串为数字 awk {print $10} test.txt# 输出 3.24324 3.24324其实加号是用来做数字运算的 echo 1 | awk {print 100100}当然它和其他编程语言一样有其他的数字运算符。而且语法都差不多 下面是一些常见的输出格式示例 %e以科学计数法表示例如 “1.23e03”。%.1e以科学计数法表示保留一位小数%.g: 等同与 %.e, 不保留小数的科学计数法%g自动选择合适的显示方式可以根据数值大小自动切换为普通表示法或科学计数法。%.1g将数值四舍五入为整数并输出。 你真的会了吗 思考为什么会这样输出 test.txt 2003.3.22|2002.1.14|2004.3.22test.awk BEGIN{FS.;RS|} {print $1 年 $2 月 $3 日}awk -f test.awk test.txt# 思考为什么会这样输出 2003年3月22日 2002年1月14日 2004年1月22日总结 $n 输出的是一个字段 $0 输出的是一条记录 4.1 数据变量 数据变量设置的为数据 $0 # 当前记录 $n # 第几个字段 FILENAME # 当前输入文件的名。 NF # 表示字段数在执行过程中对应于当前的字段数。 NR # 表示记录数在执行过程中对应于当前的行号。4.2 控制变脸 数据变量中设置的字符用来控制awk如何识别字段和记录 FS # 字段分隔符默认是任何空格。 RS # 记录分隔符默认是一个换行符。4.3 输出格式变量 输出格式变量用来指示awk应该如何输出字段和记录 OFS # 输出字段分隔符默认值是一个空格。 ORS # 输出记录分隔符默认值是一个换行符。 OFMT # 数字的输出格式默认值是%.6g。五、数学运算 5.1 算术运算符 运算符描述加-减*乘/除^幂%取余 5.2 赋值运算符 运算符-*/^% 示例 test.awk {print # 赋值运算符会对变量本身进行修改a 1print a 1 | a aa 1print a 1 | a aa - 1print a - 1 | a aa * 10print a * 10 | a aa / 2print a / 2 | a aa % 3print a % 3 | a aa ^ 3print a ^ 3 | a aaprint a | a aa--print a-- | a aprint \n--------------------------\nprint # 算数运算符不会对变量进行修改print a5: a5print a-3: a-3print a*2: a*2print a/2: a/2print a^2: a^2print a%3: a%3 }运行结果 # 赋值运算符会对变量本身进行修改 a 1 | a1 a 1 | a2 a - 1 | a1 a * 10 | a10 a / 2 | a5 a % 3 | a2 a ^ 3 | a8 a | a9 a-- | a8--------------------------# 算数运算符不会对变量进行修改 a5: 13 a-3: 5 a*2: 16 a/2: 4 a^2: 64 a%3: 2六、条件判断 在awk中使用非零和0来表示真和假 该布尔值写在{}的前面 test2.txt 0{print 为假不执行 } 1{print 非0为真 } 15{print 6也是非0 }echo 1 | awk -f test2.awk# 输出 非0为真 6也是非06.1 比较运算符 运算符描述大于小于等于!不等于大于等于小于等于 举例 test2.awk 1 ! 1 {print 0 }1 1{print 1 }echo | awk -f test2.awk# 输出 16.2 逻辑运算符 运算符描述||逻辑或一边条件为真则为真逻辑与一边为假则为假!逻辑非真为假 test2.awk 1 0 || 11 {print || }1 0 11{print }echo | awk -f test2.awk# 输出 ||可以使用()来调整优先级 !(11 13){print 1 }6.3 正则表达式 还可以使用正则表达式来进行判断 正则表达式使用 // 包裹 判断字符串是否包含hello test2.awk hhhh! hello world! ~ /hello/{print 1 }echo | awk -f test2.awk# 输出 1运算符描述~匹配该正则表达式!~不匹配该正则表达式 不输出开头有 total的行 ls -l | awk {if($0 !~ /^total/){print $0}}这里使用了if语句 该语句的结构为 if(条件){指令}以下是正则表达式的语法 ^ 行首 $ 行尾 . 除了换行符以外的任意单个字符 * 前导字符的零个或多个 .* 所有字符 [] 字符组内的任一字符 [^] 对字符组内的每个字符取反(不匹配字符组内的每个字符) ^[^] 非字符组内的字符开头的行 [a-z] 小写字母 [A-Z] 大写字母 [a-Z] 小写和大写字母 [0-9] 数字 \ 单词头单词一般以空格或特殊字符做分隔,连续的字符串被当做单词 \ 单词尾七、其它运算符 7.1 三目运算符 echo 1 | awk {print 12 ? 真 : 假}# 输出 真7.2 空格连接符 字符串使用一个或多个空格连接 print hello - world八、跳过后面指令 next进行下一条记录处理 {next}{print}此时后面的print不会执行 echo| awk {print 123}{next}{print 456}# 输出 123更多用法在后面进行更新 参考 https://wangchujiang.com/linux-command/c/awk.html
http://www.yutouwan.com/news/213955/

相关文章:

  • 申请注册网站怎能建设个人网站
  • 制作网站项目实例做的比较好的法律实务培训网站
  • 做家教备课用什么网站合肥网页设计公司
  • dede视频网站自己电脑做网站iis
  • 公司网站建设网站合肥网页设计哪家服务好
  • 台州做网站电话淘宝网页版入口官网
  • 做网站图片教程直播传媒公司排名
  • 山东省城乡与住房建设厅网站首页成都高端网站建设那家好
  • 银川网站推广方式佛山网站代运营准度科技有限公司
  • 前期宣传网站推广方案国外 视频上传网站源码
  • 四川科隆建设有限公司网站品牌策划经典案例
  • 网站开发技术有一级门户网站建设费用
  • 培训网站建设情况深度网网站建设
  • 焦作网站设计公司搭建电商平台网站
  • 网站建设设计书东莞网站优化排名网站
  • 做网站哪里找程序员网络营销课程教案
  • 网站专题页面案例wordpress 4.4.3下载
  • 九江县网站建设做一个页面多少钱
  • 织梦模板网站源码深圳有哪些做网站的公司
  • 建设银行证券转银行网站个人网站建设方法
  • 东莞seo网站关键词优优化常州网络公司主营业务
  • 长春网站建设4435网站访问速度慢的原因
  • dedecms建网站浙江企业响应式网站建设
  • 肇庆cms建站系统做网站的广告
  • 做网站鼎盛网站设计制作费用多少
  • 企业做网站需要做哪些工作淮安做网站需要多少钱
  • 佛山如何网站建设在哪里做私人设计工作室前景
  • 嘉兴丝绸大厦做网站的公司旅游景点推广策划方案
  • 酷炫个人特别网站免费网络验证
  • app设计网站有哪些功能p2p理财网站开发流程