あなたは近くにいます。フォルダ内のすべての .txt ファイル内で「ha」が出現する総数を取得するには:
grep -o "ha" *.txt | wc -l
man grep
から :
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with
each such part on a separate output line.
それぞれ 一致は別の行に出力されるため、wc -l
が許可されます それらすべてを数えます。
ただし、デフォルトでは、grep は行の最初の出現のみを検出し、行全体を出力します。同様に、オプション -c
すべての行で最初に出現するものだけを検索し、1 つ (またはそれ以上) の一致があった行の数を出力します。
編集:
個々のファイル内の合計出現回数を (ファイル名とともに) 出力する方法は次のとおりです:
find *.txt -printf 'echo "$(grep -o "ha" %p | wc -l) %p";' | sh
#Example output
3 file1.txt
1 file2.txt
説明:
find *.txt
- .txt ファイルを検索
-printf
- %p
のオカレンスを置き換えて、単一引用符 (フォーマット済み) の間のすべてを標準出力に出力します。 find の出力 (ファイル名) を使用
$(grep -o "ha" %p | wc -l)
- 上記のように動作します
| sh
- -printf
からの出力 (コマンド) はシェルにパイプされて実行されます
printf はファイル名ごとに 1 回呼び出されることに注意してください。
grep
を使用する代わりに 、 ag -c ha
を使用してみてください シルバーサーチャー:
1.txt:3
2.txt:1
それはより高速です! ubuntu を使用している場合は、パッケージ silversearcher-ag
をインストールできます。 .
grub2-install:エラー:/boot/efi は、Gentoo の新規インストールの EFI パーティションのようには見えません
Linux では、パスワードなしでは誰もアクセスできないようにフォルダ/パーティションを暗号化することはできますか?