テキストファイルがありますが、以下の特定の行を確認したいと思います。
com1=`awk 'NF{a=b;b=$0} END{print (b ~ /\com/)? "Yes" : "No"}' $myfile`
com2=`awk 'NF{a=b;b=$0} END{print (b ~ /\t/)? "Yes" : "No"}' $myfile`
com3=`awk 'NF{a=b;b=$0} END{print (a ~ /\t/)? "Yes" : "No"}' $myfile`
echo "$com1 --- $comp2 --- $comp3"
if [[ $comp1="Yes" ]] && [[ $comp3="No" ]]; then
echo "condition1"
fi
if [[ $comp1="Yes" ]] && [[ $comp3="Yes" ]]; then
echo "condition2"
fi
if [[ $comp2="Yes" ]]; then
echo "condition3"
fi
私のファイルは次のとおりです
1.1.m
1.2.t
com
出力は「
Yes --- No --- No
condition1
condition2
condition3
2つの質問があります。まず、テキストファイル(1.2.t)の最後の行の前の空でない行に「t」が含まれていることを確認したいと思います。したがって、0f $com3の答えは「はい」でなければなりませんが、私の出力では「いいえ」です。最も重要な問題は、「if条件」のどれも機能しないことです。
答え1
[[ $comp1 = "Yes" ]] && [[ $comp3 = "No" ]]