2018-09-09

2018-09-09  本文已影响0人  termanary

用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
上一篇下一篇

猜你喜欢

热点阅读