我有一个包含不同文本行的文件,我想检查它们是否是相同模式的重复项。
在文件中:
Blah
Blah
Depends: ssloader, firmware (>= 3.0), firmware (<= 6.0), apta
blah
我的目标是将 ">= 3.0" & "<= 6.0" 放入文件中。但请记住,有时只有 1 个“固件”依赖项。
到目前为止,我只获取了第一个固件信息:
if grep -Fq "firmware (" inputfile #checks if pattern exists
then
compat=$(look 'Depends:' inputfile) #grab line where pattern is
compat=${##*firmware (} #remove pattern and other stuff infront
compat=${compat%%)*} #remove other stuff behind ")"
echo $compat >> outputfile
fi
我想知道如何检查同一行中是否有超过 1 个模式。或者如果有超过 1 行具有相同的模式,如何识别该行可以获得固件值。谢谢
编辑:
我最初的意图是检测是否有多个相同的模式。我对想法持开放态度。:)
像这样的东西:
if (more than one of same pattern)
get both values #I am open to ideas to get this done <---
else
get value of this pattern
fi
编辑2:
我通过这样做来完成这项工作;
if grep -Fq "firmware (" ./control
then
compat=$(look 'Depends:' control)
compat=${compat#*firmware (}
compat=${compat%%)*}
echo -n $compat > ./compatibility.txt
if [ $(grep -o "firmware (" ./control | wc -l) -eq 2 ]; then
compat=$(look 'Depends:' control)
compat=${compat##*firmware (}
compat=${compat%%)*}
echo " $compat" >> ./compatibility.txt
fi
fi
我知道这绝对是非常外行的,只有当模式在“取决于:”标签中时它才有效。
有什么想法/意见吗?