linux三剑客

sed

常用参数及命令

sed [-nefri] command test.txt (尽量按照标准格式使用单引号)

sed处理文本文件,并输出到标准输出(控制台)command
-e可以指定多个命令a新增
-f指定命令文件c替换
-n取消默认控制台输出,与p一起使用可打印指定内容d删除
-i输出到原文件,静默执行(修改原文件的意思)i插入
p打印,要和-n参数一起使用
s替换(匹配局部替换)

新增 a

sed 2a testContent’ test.txt在第 2 行后面新增一行内容
sed ‘1,3a testContent’ test.txt在原文的第 1~3 行后面各新增一行内容

替换 c

sed '2c test****Content’ test.txt将第 2 行内容整行替换
sed '1,3c test****Content’ test.txt将第 1~3 行内容替换成一行指定内容

删除 d

sed 2d’ test.txt删除第 2 行
sed ‘1,3d’ test.txt删除第1~3行

插入 i

sed '2i test****Content’ test.txt在第 2 行前面插入一行内容
sed '1,3i test****Content’ test.txt在原文的第 1~3 行前面各插入一行内容

打印 p

sed 2p’ test.txt重复打印第 2 行
sed ‘1,3p’ test.txt重复打印第1~3行
sed -n ‘2p’ test.txt只打印第 2 行
sed -n ‘1,3p’ test.txt只打印第 1~3 行
sed -n ‘/user/p’ test.txt打印匹配到user的行,类似grep
sed -n ‘/user/!p’ test.txt! 反选,打印没有匹配到user的行
sed -n ‘s/old/new/gp’ test只打印匹配替换的行

替换 s

sed s/old/new/ test.txt匹配每一行的第一个old替换为new
sed s/old/new/gi’ test.txt匹配所有old替换为new,g 代表一行多个,i 代表匹配忽略大小写
sed ‘3,9s/old/new/gi’ test.txt匹配第 3~9 行所有old替换为new

参数 -e

sed -e ‘s/系统/00/g’ -e ‘2d’ test.txt执行多个指令

参数 -f

sed -f ab.log test.txt多个命令写进ab.log文件里,一行一条命令,效果同-e

示例: 匹配–>操作(增删改查)

  1. sed ‘s/book/books/’ file 文本中的book替换成books(每行第一个book)

  2. sed ‘s/book/books/g’ file 文本中所有的book替换成books

  3. sed -n ‘s/test/TEST/p’ file 表示只打印文本中发生替换的行

  4. sed -n '1,4’p 1.txt 打印指定的行

  5. sed -n '/root/'p 1.txt 打印包含指定字符串的行

  6. sed -i ‘s/book/books/g’ file 表示直接修改源文件,文本中所有的book替换成books

  7. sed -i ‘s/^/#&/’ 1.txt 表示每行行首添加#号,直接修改文件

  8. sed ‘/^$/d’ file 删除空白行(注意:d是在后面的,s命令在前面)

  9. sed ‘2d’ file 删除第二行

  10. sed ‘2,$d’ file 删除第二行到末行所有行

  11. sed ‘$d’ file 删除最后一行

  12. sed ‘s/[0-9]//g’ 1.txt 删除所有数字(实际上是所有数字替换成空了)

  13. sed ‘s/[^0-9]//g’ 1.txt 删除所有非数字

  14. sed ‘s/^192/localhost&/’ file 所有以192开头的行都会在行首加上localhost

  15. echo “a handsome boy”| sed ‘s/\w+/[&]/g’ \w+ 匹配每一个单词,[&] 替换它,& 表示所匹配到的单词; 结果:[a] [handsome] [boy]

  16. sed ‘s/(root)(.)(bash)/\3\2\1/’ 1.txt == sed 's#(root)(.)(bash)#\3\2\1#’ 1.txt

    ​ 表示:调换两个字符串位置; /可以使用 #,@ 等

  17. sed -e ‘/root/p’ -e ‘/body/p’ -n 1.txt == sed -n ‘/root/p; /body/p’ 1.txt

    ​ 实现同时进行多个任务;会显示root或者body的行

  18. sed -n ‘p;n’ 1.txt == sed -n ‘1~2p’ 1.txt 打印奇数行

  19. sed -n ‘n;p’ 1.txt == sed -n ‘2~2p’ 1.txt 打印偶数行

    ​ first~step 表示以first开始,后面每次加step;例如1~2:表示所有的奇数行

  20. sed ‘=’ 1.txt | sed ‘N;s/\n/\t/’ 显示行号,‘=’ 命令能显示行号,但是行号是单独的一行,若想行号后面跟该行的内容,需要再进行处理

  21. sed G 1.txt 在每一行后面插入一个空行

  22. sed ‘{x;p;x}’ 1.txt 在每一行前面插入一个空行

awk

在这里插入图片描述

变量名称代表意义
NF每一行 ($0) 拥有的栏位总数
NR目前 awk 所处理的是『第几行』数据
FS目前的分隔字节,默认是空白键

命令参数格式:

awk ‘条件类型1{动作1} 条件类型2{动作2} …’ filename

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值