Bash - 省略以错误拼写单词开头的行(使用hunspell)

Ric*_*lis 0 bash command-line hunspell

我有一个文件words.txt,其中每行是一个单词,后跟一个TAB,后跟一个整数(表示单词的频率).我想生成一个新文件,其中只包含单词拼写正确的行.

使用cat words.txt | hunspell -1 -G > ok_words.txt我可以获得正确单词的列表,但我怎样才能包括每行的剩余部分(即TAB数字和数字)?

输入:

adwy  27
bird  10
cat   12
dog   42
erfgq 9
fish  2
Run Code Online (Sandbox Code Playgroud)

期望的输出:

bird  10
cat   12
dog   42
fish  2
Run Code Online (Sandbox Code Playgroud)

Fat*_*ror 5

最简单的方法是使用join命令:

$ join words.txt ok_words.txt 
bird 10
cat 12
dog 42
fish 2
Run Code Online (Sandbox Code Playgroud)

或保留标签:

$ join -t $'\t' words.txt ok_words.txt 
bird    10
cat 12
dog 42
fish    2
Run Code Online (Sandbox Code Playgroud)

  • 在没有临时文件的单行中:`join words.txt <(hunspell -1 -G <words.txt)` (2认同)