美文网首页
shell基础教程-4-linux三剑客

shell基础教程-4-linux三剑客

作者: 好多可乐 | 来源:发表于2020-06-30 23:15 被阅读0次

一,grep:用于文本搜索

# grep:查找命令,重点
grep hello test.txt  # 在test.txt文件里面查找hello
grep -i hello test.txt # 在test.txt文件里面查找hello,忽略大小写 i:ignore
cat test.txt | grep -i hello   # 在test.txt文件里面查找hello,忽略大小写
cat test.txt | grep -o hello   # 在test.txt文件里面查找hello,只展示匹配到的内容
在这里插入图片描述
[kola@localhost ~]$ echo abcC | grep -i 'c'
abcC
[kola@localhost ~]$ echo abcC | grep -o 'c'  # 只显示匹配到的内容
c
[kola@localhost ~]$ echo abcdef | grep -o 'c.'  # .c:匹配c和后面的一个字符
cd
[kola@localhost ~]$ echo abcdde | grep -o 'c.*'
cdde
在这里插入图片描述
在这里插入图片描述

对这种需要搜索多个关键词的,可以新建一个keyword后缀的文件,然后编辑,输入关键字,然后结合grep命令进行操作


搜索多个结果

二,awk:文本切割
awk:把文件进行逐行读入,如果不指定分隔符,默认以空格为分隔符把它分隔开,再把替换的部分进行处理
awk -F '分隔符' '{需要执行的操作}'

awk1
这个时候awk -F 后面的 | 表示
awk2
匹配用户名
在这里插入图片描述
打印出用户名
打印用户名
如果要打印多个匹配内容,可以用逗号进行分割,但是结果不会显示逗号
匹配多个内容
grep和awk一起用
grep和awk一起用

三,sed:文本替换

语法:sed 's/要被替换的值/被替换的值/'

  • 替换单个
$ echo "cat dog cat" | sed "s/cat/fish/"
fish dog cat # 输出结果

  • 替换多个
$ echo "cat dog cat" | sed 's/cat/fish/g'
fish dog fish  # 输出结果

  • 我们除了可以用/号来替换,还可以用其他符号进行替换,输出结果都是一样的。只是常规都是用/号
$ echo "cat dog cat" | sed 's\cat\fish\g'
fish dog fish
$ echo "cat dog cat" | sed 's#cat#fish#g'
fish dog fish

  • sed还支持替换文件内容
# 原文件内容
$ cat test.txt
hello kola
kola
hhhhhhh
Hello kola

# 替换原文件内容:这个替换只是把需要替换的文件读到模式空间,改的是空间里面的内容,
# 和原始文件无关
$ sed "s/kola/lucy/" test.txt
hello lucy
lucy
hhhhhhh
Hello lucy

# 如果需要替换原始文件的内容,需要加上 “-i”参数
sed -i "s/kola/lucy/" test.txt

  • 如果担心自己因为手滑删除文件,我们可以进行备份
sed -i "s/kola/lucy/" test.txt.bak
文件替换

相关文章

网友评论

      本文标题:shell基础教程-4-linux三剑客

      本文链接:https://www.haomeiwen.com/subject/yjqqqktx.html