#!/bin/bash
fname=$2
rname=$1
echo "$(<$fname)" | while read line ; do
result=`echo "$(<$rname)" | grep "$line"; echo $?`
if [ $result != 0 ]
then
sed '/$line/d' $fname > newkas
fi 2> /dev/null
done
Run Code Online (Sandbox Code Playgroud)
大家好,我是bash的新手.
我有两个比另一个更旧的列表.我希望将'fname'上的名字与'rname'进行比较.'结果'是标准输出,如果名称仍然在'rname'中可用,我将获得.如果不是那么我将获得非零输出.使用sed删除该行并将其重新路由到新文件.
我已经尝试了部分代码,直到我添加了while循环函数.sed似乎不起作用,因为'newkas'的最终输出与初始输入'fname'相同.我的方法错了还是错过了任何部分?