前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux文本处理

Linux文本处理

作者头像
歪歪梯
发布2021-03-15 15:12:24
1.3K0
发布2021-03-15 15:12:24
举报
文章被收录于专栏:歪歪梯Club

grep

最常用的正则查找指令,比如结合tail将匹配正则的文件行输出

代码语言:javascript
复制
tail 文件名 | grep -E "正则表达式" > "结果输出文件名"

sed

sed适合用于对大文件进行正则替换输出 其处理是实时显示(从文件读取一行匹配一行,结果输出) 不会修改原文件(添加g标记为全部替换,不添加为每行替换首个匹配项)

代码语言:javascript
复制
sed 's/正则表达式/替换文本/g'

如果需要保存输出到文件可以类似上面使用重定向输出符

代码语言:javascript
复制
sed 's/正则表达式/替换文本/g' > "输出文件名"

find

find指令用于通过正则表达式检索某个文件名所在的完整路径

代码语言:javascript
复制
#查找当前目录及其所有子目录下,名称符合对应正则表达式的文件名
find . -name "正则表达式"

还可以结合xargs和grep对匹配的文件的内容进行正则检索 xargs会将文件内容处理为按行输入到缓冲区

代码语言:javascript
复制
find . -name "正则表达式" | xargs grep -E "文件内容正则"

awk

awk是比较好用的指令,支持循环、正则和字典等 match函数接受的第一个参数为输入,第二个参数为正则,返回是否存在匹配 substr函数接受的第一个参数为输入,第二个参数为开始切割的下标,第三个参数为切割长度 index函数接受的第一个参数为输入,第二个参数为要查找的子串,返回从左往右找到的第一个子串的位置下标 awk中对于字典、变量不需要定义,第一次赋值即为定义 print函数进行打印输出,带双引号的字符串会作为多个打印的拼接符,并将引号中内容一并输出 对于比较长的awk指令,一般写到文件通过shell执行(命令行需要为单行,awk不需要严格缩进,由{}控制作用域范围) 以下为结合文件,按行读取作为输入,使用字典和字符串函数substr、index的示例

代码语言:javascript
复制
awk 'Begin{
    while(getline < "输入文件名"{
        if(match($0,/正则/)){
             var = substr($0,index($0,"subtext"), iLen)
             print var
             dict[key] = var
        }
    }
    close("输入文件名")
    for (key in dict){
         print key","dict[key]
    }
}'
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 歪歪梯Club 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • grep
  • sed
  • find
  • awk
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档