sed 与 awk 的拷与问
灵魂拷问:sed 与 awk 分别是什么,有什么用?
sed 全称 stream editer,是一个流编辑器。所谓流编辑
就是在执行命令时,可以动态修改文件的一种技术。
awk 是三位创始人的姓氏的拼合,这是一个强劲的文本处理和格式化报表工具。
sed 与 awk 并不会改动原始文件,而是将符合规则的每一行内容显示到标准输出中
以上是一个示例文件 data.txt
sed 小例子
显示包含字符串 wlmq 的行 sed -n /wlmq/p data.txt
删除 1-3 行 sed '1,3d' data.txt
替换 将所有 a 修改为 A sed s/a/A/g data.txt
awk 小例子
显示包含字符串 wlmq 的行 awk /wlmq/ data.txt
打印指定列,如第一列和第三列 awk '{print $1,$3} data.txt
注意: awk 中,列的初始值是从 1 开始的,正如所见 $1,那如果一行有 10 列,难道我要从 $1 写到 $10 不成?真傻,这不就是打印完整行么? $0 就表示当前行
打印完整的一行 $0 awk '{print $0} data.txt
指定分割符 -F awk -F# '{print $1,$3} data.txt
由于awk的默认分割符号是空格
,所以可以使用-F#
将分割符指定为#
号