ファイルの文字数が3で割られていることを確認してください。

ファイルの文字数が3で割られていることを確認してください。

DNAファイルのヌクレオチドの基本文字数が3の倍数であることを確認しようとしていますが、次のコードでエラーが発生し続けます。

var4=$(wc -c < $1 | bc)
var5=$($var4 % 3)

if [ "$var5" -eq 0 ]; then

ご覧のとおり、上記のコードは完全ではありませんが、問題のある部分だけを表示しました。

ベストアンサー1

ヌクレオチドがグループ内の文字を使用してエンコードされたと仮定すると、acgtn次のコマンドはグループ内の文字以外のすべての項目(改行、スペースなど)を削除し、残りの文字数を計算します。

ncount=$( tr -d -c 'acgtn' <"$1" | wc -c )

その後、簡単なテストでこの数字を確認できますが、$((...))代わりに使用することに注意してください$(...)

if [ "$(( ncount % 3 ))" -eq 0 ]; then
    echo 'nucleotide count is multiple of 3'
fi

大文字または両方を混在して使用する場合は、tr適切に使用する文字列を展開してください。

おすすめ記事