name = "pipeline_word_freq" category = "pipeline" mode = "convert" description = """ Read text from stdin. Count the frequency of each word (case-insensitive, only alphabetic characters count as words). Print the top 5 most frequent words in descending order of frequency, in the format: "count word" If two words have the same count, sort them alphabetically. If there are fewer than 5 unique words, print all of them. """ bash_source = """ #!/bin/bash tr '[:upper:]' '[:lower:]' | tr -cs '[:alpha:]' '\n' | grep -v '^$' | sort | uniq -c | sort -k1,1rn -k2,2 | head -5 | while read -r count word || [[ -n "$word" ]]; do echo "$count $word" done """ [[test_cases]] stdin = """The quick brown fox jumps over the lazy dog. The dog barked at the fox. The fox ran away.""" expected_stdout = """5 the 3 fox 2 dog 1 at 1 away""" [[test_cases]] stdin = "hello hello world" expected_stdout = """2 hello 1 world""" [[test_cases]] stdin = "One one ONE two TWO two Three three three three" expected_stdout = """4 three 3 one 3 two"""