美文网首页
使用Linux命令awk进行高效文本预处理

使用Linux命令awk进行高效文本预处理

作者: 湘港记者 | 来源:发表于2020-07-22 00:40 被阅读0次

    awk命令简介

    AWK是一种处理文本文件的语言,是一个强大的文本分析工具。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。基础用法为

    awk [-F  field-separator]  'commands'  input-file(s)
    # 例如
    awk  -F ':'  '{print $1}'  input-files
    

    经常需要对一些文本进行预处理,大部分同学可能直接就上Python,优点是简单直观,缺点是效率低,处理速度慢,实际上使用Linux自带的awk可以高效地完成。

    简单好用的文本预处理命令实践

    去重后排序

    sort -n [IN_FILE] | uniq | awk '{ print length, $0 }'| sort -n | cut -d" " -f2- > [OUT_FILE]
    

    删除长度超过NUM的文本

    cat [IN_FILE] | awk '{if (length($0) <=[NUM] ) print $0}' > [OUT_FILE]
    

    随机抽取NUM行

    awk 'BEGIN{srand()} {print rand()"\t"$0}' [IN_FILE] | sort -nk 1 | head -n [NUM] | awk -F "\t" '{print $2}' > [OUT_FILE]
    

    TBD

    相关文章

      网友评论

          本文标题:使用Linux命令awk进行高效文本预处理

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