我有一个inputId文件
<div>
<span v-for="inv, index in data.inventory" v-if="index != data.inventory.length - 1">{{inv}},</span>
<span v-else>{{inv}}</span>
</div>
我有其他matcherFile为
input_abc,input_xyz,input_def
input_def,input_qwe
input_ghf,input_tgf,input_xyz
我想从inputId文件中过滤matcherFile中的所有id,因此输出为
input_xyz
input_def
Wat我写的是
input_abc
input_qwe
input_ghf,input_tgf
答案 0 :(得分:1)
我从您的帖子中了解到,您希望从matcherFile文件中匹配的inputId文件中删除条目。
为此我希望这段代码可以帮到你。
inputFileName="$1"
matchFile="$2"
outputFile="$3"
cp $inputFileName ${inputFileName}_bkp
matchFileIds=$(cat $matchFile);
echo "$matchFileIds"
for IDS in $(cat $matchFile);
do
echo $IDS
sed -i "s/$IDS,//g" $inputFileName
sed -i "s/,$IDS//g" $inputFileName
done
mv $inputFileName $outputFile
mv ${inputFileName}_bkp $inputFileName
答案 1 :(得分:1)
这是另一种可能的解决方案。
$ cat input.txt
input_abc,input_xyz,input_def
input_def,input_qwe
input_ghf,input_tgf,input_xyz
$ cat filter.txt
input_xyz
input_def
$ cat filter.sh
#!/bin/sh
input_file=input.txt
filter_file=filter.txt
for filter in $(cat $filter_file)
do
cmd="$cmd|sed -e's/$filter//g'"
done
cmd="cat ${input_file} ${cmd} | sed -e's/,,//g'| sed -e's/^,//g'| sed -e's/,$//g'"
echo $cmd > ./tmp_script.sh
bash ./tmp_script.sh
$ ./filter.sh
input_abc
input_qwe
input_ghf,input_tgf