美文网首页
bash 文本读写 并 按照规则输出到新文件中

bash 文本读写 并 按照规则输出到新文件中

作者: maxbin | 来源:发表于2018-03-06 15:54 被阅读16次

    问题

    • 文件名 : uid.log
    • 读取文件内容 : uid:score|exp|sex|name (例如: 101:100|37|2|名字)
    • 请写一个脚本,遍历所有的日志,把所有exp>100的,并且sex=1的用户找出来,并记录到文件result.log中,记录格式: uid|exp|sex(例:101|190|1) ,每条记录一行。


      title.png

    脚本

    cat uid.log | while read line 
    do
        echo $line | awk -F \| '{print $0,$1,$2,$3,$4}' | while read a b c d e
        do 
            if [ "$c" -gt "100" -a "$d" -ge "1" ]; then
                uid=`echo $b | awk -F : '{print $1}'`
                echo $uid'|'$c'|'$d >> result.log
            fi
        done
    done
    
    • cat 读取文件

    • awk 分割字符串

    • echo "内容" >> 文件

    • awk 后跟的$0-4五个变量是因为$0是原记录行,分割前的数据,然后将变量分别读入a b c d e五个变量中(read a b c d e)

    • uid=echo $b | awk -F : '{print $1}' 中的单引号: 命令需要用`符号引用起来

    • 使用cat命令查看一下结果

    cat uid.log
    cat result.log
    
    result.png

    相关文章

      网友评论

          本文标题:bash 文本读写 并 按照规则输出到新文件中

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