Linux常用文本处理指令 - Go语言中文社区

Linux常用文本处理指令


Linux常用文本处理指令

grep

最常用正则查找指令,比如结合tail

tail 文件名 | grep -E "正则表达式" > "结果输出文件名"

sed

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

sed 's/正则表达式/替换文本/g'

如果需要保持输出可以

sed 's/正则表达式/替换文本/g' > "输出文件名"

find

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

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

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

find . -name "正则表达式" | xargs grep -E "文件内容正则"

awk

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

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]
    }
}'

更多文章,请搜索公众号歪歪梯Club
更多资料,请搜索公众号歪歪梯Club

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44627989/article/details/113852285
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢