美文网首页
2018-09-09

2018-09-09

作者: termanary | 来源:发表于2018-09-09 01:59 被阅读0次

    用linux自带的shell的三剑客进行文本过滤操作:
    目的:从一个已经存在的文件中每次读取一个变量(一行),然后删除除了这个变量之外的所有变量(匹配,只要包含这个变量,就删除)。
    首先是从文本读入的问题:

    while read a
    do
        cmd
    done < file
    
        刚开始我是这个样子的:
    
    while read a
    do
        sed -i "/$a/ d" file
    done < file
    
        后来发现不行,因为file已经作为文本流读入了,$a一定是file的所有内容,所以最后的结果一定是清空。
        所以:
    
    i=$(cat notprime | wc -l)
    i=`expr $i `
    while [ $i -gt 0 ]
    do
        a=`head -n 1 ./notprime `
        echo $a >> new 
        sed -i "/$a/ d" notprime
        i=$(cat notprime | wc -l)
        i=`expr $i `
    done
    

    相关文章

      网友评论

          本文标题:2018-09-09

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