sed,awk

1. sed (string editor)

使用-i可以将结果运用于原文件

sed 's/text1/text2/' file > newfile

mv newfile file

其实可以使用 sed -i 's/text1/text2/' file 搞定

如果加后缀g表示全部替换,不加只会替换每行的第一处匹配

使用Ng选择从第几处开始匹配,第二个例子是为了说明无论使用/或者|或者其他什么字符,都是可以用作定界符的

移除空白行

sed '/^$/d'  # /pattern/d或移除匹配到的行,注意没有s了

用&表示匹配到的内容,并且\d在sed命令中不支持。。

第二个例子,用\1 \2分别标记之前括号里pettern匹配到的内容

如果需要对sed中的内容求值,可以使用双引号

2. awk

awk通常由BEGIN,END和能够使用模式匹配的通用语句块三个部分组成,这三个部分都是可选的,脚本通常包含在双引号或者单引号中

1)执行BEGIN

2)读取stdin中的一行,然后执行pattern中的语句块,重复这个过程,直到文件读完;

这个例子中没有提供pattern,则认为每一行都是匹配的

3) 执行END

awk中的print使用

1. print的参数以逗号分隔时,打印出来的参数以空格作为定界符

2. 双引号当做拼接操作符

echo在这里的作用是输入一行,使得awk只执行一次

特殊变量

NR: 表示记录数量(number of rows),在执行中对应于当前行号

NF: 表示字段数量(number of fields),在执行过程中对应于当前行的字段数

$0: 表示执行过程中,当前行的内容

$1: 第一个字段的文本内容

$2: 第二个字段的文本内容

-v选项将外部变量(非来自stdin)传递给awk

从文件传输变量

getline读取某一行

例如跳过第一行

指定样式

设置定界符

或者awk -F: '{print $NF}' /etc/passwd

通过getline读取外部命令输出到变量output

"command" | getline output

最新文章

  1. docker 基础使用
  2. iOS项目开发知识点
  3. Mvc4_Area的应用
  4. Pop Sequence (栈)
  5. Nginx中让 重写后的路径 自动增加斜线 /
  6. 2016022604 - redis命令介绍
  7. 防止sql注入 参数化解决方案
  8. python成长之路第三篇(1)_初识函数
  9. python把汉字转换成拼音实现程序
  10. 如何使用ZEROBRANE STUDIO远程调试COCOS2D-X的LUA脚本(转)
  11. spring boot无法启动,或者正常启动之后无法访问报404的解决办法
  12. 使用EndNote在Word中插入参考文献的格式设置
  13. 两个对象用equals方法比较为true,它们的Hashcode值相同吗?
  14. Django commands自定制
  15. .net core 摸索之路
  16. 从零开始学习PYTHON3讲义(七)条件分支和哥德巴赫猜想
  17. ide phpStorm管理远程主机
  18. jmeter 上传附件脚本报Non HTTP response code: java.io.FileNotFoundException
  19. [Spark][Flume]Flume 启动例子
  20. c/c++关于指针的一点理解

热门文章

  1. list用法(用到了再补充)
  2. 【python】os.getcwd和getcwdu
  3. PHP安装环境搭建
  4. sql server 查询数据判断为空
  5. matlab学习菜单控件的基本用法
  6. socket主要函数介绍
  7. luogu P1714 切蛋糕 单调队列
  8. 【剑指Offer】55、链表中环的入口结点
  9. Linux基础:find命令总结
  10. 【ABCD组】Scrum meeting 5