hoge.txt
hogefugapiyohogefugapiyo
hogehogehogehogehogehoge
Wenn Sie die Anzahl der "hoge" aus einer solchen Datei wissen möchten. (Übrigens 8)
Ich habe versucht, die Anzahl der Vorkommen mit dem integrierten Befehl herauszufinden, aber es hat nicht funktioniert, also habe ich ein Skript in Python geschrieben. (Weil grep möglicherweise nicht in der Lage ist, mehrere Vorkommen in einer Zeile zu verarbeiten.)
match_count.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python
 
import sys
import os.path
 
 
def clean_args(args):
    if len(args) == 2:
        search_word = args[1] 
        return (True, None, search_word)
    if len(args) != 3: 
        print "[Usage] match_count.py $filename $search_word"
        return (False, None, None)
    
    target_file_path = args[1]
    search_word       = args[2] 
 
    if not os.path.exists(target_file_path):
        print "[Error] File is not exist."
        return (False, None, None)
 
    return (True, target_file_path, search_word)
 
 
def count_words(filename, search_word):
 
    if filename is not None:
        # python 2.Weil es 4 war, kann ich nicht mit verwenden
        stream = open(filename, 'r')
        counter = _count(stream, search_word)
        stream.close()
        return counter
    else :
        return _count(sys.stdin, search_word)
 
 
def _count(stream, search_word):
    counter = 0
    for line in stream:
        counter += line.count(search_word)
    return counter
 
   
def main():
 
    args = sys.argv
    (is_valid, filename, search_word) = clean_args(args)
    if not is_valid:
        sys.exit()
    
    print count_words(filename, search_word)
 
 
if __name__ == '__main__':
    main()
Erstellen Sie diese Datei unter Linux und erteilen Sie ihr die Ausführungsberechtigung.
$ ./match_count.py hoge.txt hoge
8
Sie können die Nummer erhalten, die mit hoge wie folgt übereinstimmt.
Ich habe auch versucht, Rohre zu stützen
$ cat hoge.txt | ./match_count.py hoge
8
Sie können es auch verwenden, wenn Sie möchten. Ich frage mich, ob es besser ist, wenn ich mehrere Dateien katze.
Recommended Posts