私は異なるテキスト行を持つファイルを持っています、私は同じパターンの重複しているかどうかをチェックしたいと思います。文字列のパターンを見つけるLinux
ファイルで:
Blah
Blah
Depends: ssloader, firmware (>= 3.0), firmware (<= 6.0), apta
blah
私の目的は、ファイルに "> = 3.0" & "< = 6.0" を取得することです。時には1つの "ファームウェア"依存性しかないことに注意してください。私は、同じ行に複数の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行以上がある場合、その行を識別する方法でファームウェア値を取得することができます。おかげ
EDIT:
私の当初の意図は、同じパターンの2つ以上が存在するかどうかを検出することです。私はアイデアを公開しています。このような:)
何か:
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
EDIT2:
私はこのようにそれをすることによって、この作業を持っています。
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
私はそれが間違いなく非常に素人であることを知っており、パターンが「従属:」ラベルにある場合にのみ機能します。
アイデア/入力はありますか?
それは常に 'firmware'されようとしている、またはあなたが'依存のいずれかの重複を探しています: '、またはラベル付きの行に重複はありますか? – geekosaur
また、繰り返し数はいくつありますか? – geekosaur
時には 'ファームウェア 'になることがあるので、' Pre-depends: 'のような他のラベルは' firmware'情報を持っているかもしれません。 – AlwynIsPat