linux文本三剑客

linux文本三剑客

  • 1、grep
  • 2、sed

1、grep

过滤

参数 用法 作用
-i grep -i STRING xxx.txt 从xxx.txt文件查找不区分大小写STRING
-w grep -w STRING xxx.txt 精确匹配STRING
-e grep -e STRING1 -e STRING2 xxx.txt 查找多个STRING行
-n grep -n STRING xxx.txt 查看STRING 在第几行
-v grep -v STRING xxx.txt 输出不包含STRING的行
-r grep -r STRING DIR/ 查找DIR目录下哪个文件包含STRING,-lr就只输出同一个文件名称
-E grep -E 'aaa bbb’ xxx.txt
-C grep STRING -C 5 xxx.txt 查看上下5行

2、sed

逐行读取并处理文件
增删改查

args 参数
参数 用法 作用
-e sed -e '表达式' xxx.txt 接表达式,可以接多个-ne -e
-ie sed -ie '表达式' xxx.txt e可以省略,加上-e后会生成一个 xxx.txte的原文件作为副本方便恢复,但是-i -e 并不会生成副本文件;-i确认修改生效
表达式
xi 第x行前插入yyy sed -e '2i\hello world' xxx.txt
xa 第x行后插入yyy sed -e '2a\hello world' xxx.txt
xd 删除第x行 sed -e '4d' xxx.txt
xc 覆盖第x行(整行替换) sed -e '1c\aaaa' xxx.txt
xs 替换第x行的yyyy为kkk(局部替换) sed -e '2s/yyyy/kkk/' xxx.txt,这里只能替换一个yyyy,如果存在多个yyyy可以使用'2s/yyyy/kkk/g',表示把第2行中所有的yyyy替换为kkk
xp 指定打印第x行 sed -e '1p' xxx.txt,,但是用-e 会把缓存区的数据也读出来,改为-n(表示只采用改变的内容)即可
sed -e '表达式' xxx.txt

例如:
在第二行插入(i)hello world

# 2 指第2行
# i指行前插入 insert
# 用 \ 隔开文本内容
sed -e '2i\hello world' test20230823.txt

linux文本三剑客_第1张图片

你可能感兴趣的:(Linux基础运维,linux,运维,服务器)