grep 文本查找

ls |grep xxx

sed流编辑器

非交互式的文本编辑器
它每次只从标准输入/文本获取一行信息,存储到其模式空间 (pattern space),然后进行sed命令编辑后,将结果输出到屏幕上(除非sed命令删除这一行或取消打印)。sed每处理完一行就将其从模式空间中删掉,然后将下一行读入空间,进行处理和显示。处理完文件的最后一行后,sed便结束运行

  • sed [选项] [动作] 文件名
[选项]:
-n: 取消默认输出,配合动作p来输出想输出的行
-e: 允许对输入数据应用多条sed命令
-i: 直接修改读取数据的文件,而不输出到屏幕

[动作]:
p: 打印 
格式为:
sed -n '2p' a.txt (打印第2行) (通常要配合-n选项使用,不然还会格外打印出全文件内容)。
sed -n '5,8p' a.txt (打印第5到第8行)
sed -n '1~2p' a.txt(打印所有奇数行)、
sed -n '2~2p' (打印所有偶数行)
步进~(波浪形前的数字表示起始行,波浪线后的数字表示步进长度)

a: 追加。 格式为 sed ‘2a hello’ a.txt (在第2行后边追加hello)
i: 插入。 格式为 sed ‘2i hello’ a.txt (在第2行前边插入hello)
d: 删除。 格式为 sed ‘2,4d’ a.txt (删除第2行到第4行的数据)
c: 行替换。 格式为 sed ‘2c hello’ a.txt (把第2行的内容替换成hello)
s: 字符串替换。格式为 sed ‘5s/旧字符串/新字符串/g’ a.txt (5代表处理对象是第5行,g是全局替换)

awk 逐行扫描文件

逐行扫描文件,寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作

  • awk [选项] ‘脚本命令’ 文件名
[选项] 
-F fs    指定以 fs 作为输入行的分隔符,awk 命令默认分隔符为空格或制表符。
-f file    从脚本文件中读取 awk 脚本指令,以取代直接在命令行中输入指令。
-v var=val    在执行处理过程之前,设置一个变量 var,并给其设备初始值为 val

[字段变量]
$0 代表整个文本行;
$1 代表文本行中的第 1 个数据字段;
$2 代表文本行中的第 2 个数据字段;
$n 代表文本行中的第 n 个数据字段。


awk '{print $1}' data2.txt