sed与awk工具简介
- sed工具
管道命令,可以分析标准输入 ,还可以将数据进行删除替换新增选取特定行。与AWK相比,更偏向于处理行数据- 命令格式
sed [-nefr][动作]
nefr参数表示n(安静模式,只输出处理的行) e 命令模式进行sed动作编辑 f 后面跟filname处理指定文件 r 支持扩展正则 i直接修改文件内容不通过标准输出输出
其中动作是[n1[,n2] fun] ,n1 n2表示处理的具体行数n1,n2是一个区间,也可以是一个数字表示只处理其中一行。fun是一些字符表示操作 a(新增) c(接字符串可以替换n1~n2之间行) d(删除) i(插入) p(打印) s(替换) - 使用方法
cat test.txt |sed -n ‘3p’ 输出如下(注意不加n 会全部输出)输出第3行
cat test.txt |sed ‘3,5d’ 输出如下 删除3到5行
sed -i ‘s/8/90/g’ test.txt 修改文件8替换成90
sed '3, d ′ a b c . t e x t ∗ ∗ 删 除 文 件 末 尾 使 用 d' abc.text **删除文件末尾 使用 d′abc.text∗∗删除文件末尾使用**
- 命令格式
- awk工具
适合将一行分成数个字段 来处理- 命令格式
命令awk '条件类型1{动作1 \n 动作n} 条件类型2{动作2…}… ’ filename
内置变量的意思:NF是每一行拥有的字段总数,NR是字段总数,分隔后整行数据$0, 第一个字段$1,之后依次递增 - 举例使用方法-不带条件
awk通常与printf等联合使用printf ‘打印各式’ 实际内容
cat test.txt |awk ‘{print $1 "\t line: " NR}’ 这个的意思是awk 对从管道每行输入的test的每行文本,按照分隔符空格或者tab拆分,打印第一个字段$1 line 目标awk出于第几行。
- 带条件的语句使用。支持> < >= <= == !=
- 命令格式