awk
用于: 取列
awk -F ' ' '{print $1}' 等同于 awk '{print $1}' -----默认以空白字符分割后,打印第一列
awk -F '#' '{print $1,$2}' ----以#字符分割后,打印第一列,第二列
awk -F '#' '{NF==5 print $1,S2}' ------#字符分割后,如果行的分段数量为5的话,进行打印操作,打印第一列
其中:
$0 代表整行,$1 代表第 1 段,$2 代表第 2 段,以此类推,$NF 代表最后一个字段,多个字段直接用逗号隔开
-F : 通过 -F 选项来执行分隔符
NF:分隔后的字段数量
sed
用于: 取行,一次处理一行内容
sed [options] 'script' inputfile
常用options:
-n:不输出模式空间内容到屏幕,即不自动打印
-i:直接编辑文件
-e:多点编辑
-f: /PATH/SCRIPT_FILE:从指定文件中读取编辑
script 地址定界:
不给地址:对全文进行处理
单地址:#:指定的行; $:最后一行
/pattern/:被此处模式所能够匹配到的每一行
编辑命令:
s///:查找替换,支持使用其它分隔符,s@@@,s###
(替换标记:g : 行内全局替换 p : 显示替换成功的行 w :/PATH/TO/SOMEFILE 将替换成功的行保存至文件中)
d 删除模式空间匹配的行,并立即启用下一轮循环
p 显示符合条件的行,追加到默认输出之后
a [\]text1 在指定行后面追加文本,支持使用\n实现多行追加
i [\]text 在行前面插入文本
c [\]text 替换行为单行或多行文本
w /path/somefile 保存模式匹配的行至指定文件
r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后
= 为模式空间中的行打印行号
! 模式空间中匹配行取反处理
-----------例子----------------
sed -n 2p test ------打印第 2 行内容
sed -n 2,5p test --------打印第 2--5 行内容
sed -i 's/a/v/g' test -------将文件中的 a 全部替换为 v 「sed替换格式是:sed -i ‘s/要替换的内容/替换成的内容/g' 文件名」
grep
用于: 过滤文本
grep -i 'b' file 在file文件 test 中查找字符 b,忽略字母大小写