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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值