1. ホーム
  2. bash

[解決済み] ファイル内の文字列の出現回数を数えるにはどうすればよいですか?

2023-04-12 04:40:31

質問

このコードを例にとって説明します。HTML/テキストファイルとみなして、このコードに含まれる echo が現れる回数の合計を知りたい場合、bashを使ってどうすればいいでしょうか?

new_user()
{
    echo "Preparing to add a new user..."
    sleep 2
    adduser     # run the adduser program
}

echo "1. Add user"
echo "2. Exit"

echo "Enter your choice: "
read choice


case $choice in
    1) new_user     # call the new_user() function
       ;;
    *) exit
       ;;
esac 

どのように解決するのですか?

これは を出力します。

grep -c "echo" FILE

しかし、これはファイル内の出現回数をカウントしません(つまり、1行に何度もechoがある場合)。

を編集します。

少し遊んだ後、この汚い小さなコードを使って、出現回数を得ることができました。

sed 's/echo/echo\n/g' FILE | grep -c "echo"

これは基本的に、echo の各インスタンスの後に改行を追加して、それぞれが独立した行になるようにし、grep がそれらの行をカウントできるようにするものです。例えば、"echoing" とは対照的に "echo" という単語だけが必要な場合は、この正規表現を絞り込むことができます。