Ich muss vergleichen, wenn die zweite Zeile der Eingabedatei die Zeichenfolge premium-world-check.xsd
enthält. Wenn es vorhanden ist, muss ich nichts tun. Wenn es nicht vorhanden ist, muss ich einer anderen Datei vorangehen.Wildcard-Ausdruck Vergleich funktioniert nicht
I unter Eingabedatei haben,
<?xml version="1.0" encoding="UTF-8"?>
<records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="premium-world-check.xsd">
<record category="INDIVIDUAL">
<tag1>
<tag2>
....
</tag2>
</tag1>
Unten ist mein Code,
xsdFlag=`sed -n '2p' ${myInputFile}`
if [ $xsdFlag == *"premium-world-check.xsd"* ]
then
echo "Prepending not required"
else
echo "<records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="premium-world-check.xsd">" | cat - ${myInputFile} > wcTemp.xml && mv wcTemp.xml ${myInputFile}
echo "<?xml version="1.0" encoding="UTF-8"?>" | cat - ${myInputFile} > wcTemp.xml && mv wcTemp.xml ${myInputFile}
echo "PREPENDING:"
fi
ich in meinem if
Zustand unbekannt Operator bin immer.
Versuchen Sie [Shellcheck] (http://shellcheck.net). Es weist darauf hin, dass "[..] [keine Globs] (https://github.com/koalaman/shellcheck/wiki/SC2081). Verwenden Sie [[..]] oder grep." –