grep -c "string" file.txt "string"が次の行に続く場合?

grep -c "string" file.txt "string"が次の行に続く場合?

タイトルが示すように、テキストファイル内の文字列のインスタンス数を計算しようとしています。ただし、場合によっては、文字列は次の行に続きます。新しい行に分割されていても、「文字列」のインスタンスを見つけるためにこの単純なコードをどのように変更できますか?

grep -c "string" file.txtここに画像の説明を入力してください。

答え1

したがって、以下が必要です。

  1. 改行文字を削除してファイル全体を単一の文字列に結合します。
  2. パターンに応じて文字列を複数行に分割FQTLLALHR
  3. 結果の行数を計算します。
tr -d "\n\r" <file.txt | sed -e "s/FQTLLALHR/\n/g" | wc -l

完璧。

答え2

私はfasta形式のタンパク質配列を研究しています。エントリは "">タンパク質名」で始まり、その後に新しい行が続きます。行は一連の文字(アミノ酸)で始まり、1行につき60文字を占め、新しい行に続きます。同様の形式を維持するには「タンパク質名」の間に各順序を1行で列挙すると、次のようになります。

awk '/^>/ {printf("\n%s\n",$0);next; } { printf("%s",$0);} END {printf("\n");}' < file.txt > new_file.txt

これにより、すべてのシーケンスが1行に含まれる新しいテキストファイルが現在のディレクトリに作成されます。その後、テキストファイルとCtrl+Fシーケンスを開き、発生回数を計算したり、次のようにすることができます。

grep -c "string" new_file.txt

関連情報