sed 与 awk 的拷与问

灵魂拷问:sed 与 awk 分别是什么,有什么用?
sed 全称 stream editer,是一个流编辑器。所谓流编辑就是在执行命令时,可以动态修改文件的一种技术。
awk 是三位创始人的姓氏的拼合,这是一个强劲的文本处理和格式化报表工具。

sed 与 awk 并不会改动原始文件,而是将符合规则的每一行内容显示到标准输出中


// data.txt
hello world ###
wlmqtc.com
today is friday
aaa aaaa aaa
bbb bbbbb bb
cccc cccc ccc
ddd ddddd ddd

以上是一个示例文件 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#将分割符指定为#

标签: linux

评论已关闭