互联网类读书笔记程序员读书感悟

《Effective sed/AWK Programming》笔

2015-09-03  本文已影响228人  immiki

在西单图书大厦闲溜达,发现了一个日本计算机杂志的中文版,《Software Design》,一直有学习Shell的想法,觉得自己在Linux环境下工作的效率简直弱成渣。。。

试读部分

以下是摘录的笔记(边读边写,结果发现差不多把试读的部分抄了一遍。。):

第1章 sed和awk超级入门

第2章 sed详解及用法

sed的基本形式
地址列 表示的含义
(未指定) 所有数据
3 第三行
20,$ 从第20行开始到最后一行
10,5 第10行(第2个数字<=第1个数字的情况)
/^[0-9]/ 所有以数字开头的行
15,/Z$/ 从第15行开始到以Z结尾的行为止
5,10! 5~10行以外
指定方法 所表示的内容
:label名 指定标签,label名在脚本中是唯一的
b label名 无条件跳转到label名指定的命令进行执行
条件 b label名 输入行满足条件时,跳转到label名指定的命令进行执行。
如果指定"/模式/b 标签",输入行和模式匹配时,跳转到label名指定的命令进行执行
条件 !b label名 输入行不满足条件时,跳转到label名指定的命令进行执行。
如果指定"/模式/b 标签",输入行和模式不匹配时,跳转到label名指定的命令进行执行
t label名 读入输入行执行命令,只有在使用s命令替换成功时才会跳转到label名指定的命令进行执行
T label名 读入输入行执行命令,在使用s命令替换不成功时才会跳转到label名指定的命令进行执行
  #分支示例
  :label
  command1
  command2
  /pattern/b label
  command3

sed逐行处理读入数据并处理,所以不擅长跨行处理。

  #循环示例
  :loop
  N <--字符串合并
  $!b loop <--不是最后一行
  s/\n//g
上一篇下一篇

猜你喜欢

热点阅读