私は新しい言語で語彙を学ぶ効率的な方法を見つけようとしています。本を含むファイルを使用して単語リストを作成したいです。私はLinuxに初めて触れたので、助けてくれてありがとう。
私の考えでは:
テキストファイル(txt形式など)を入力として使用し、最初のファイルのすべての単一単語のリストを含む他のファイルを出力するコマンドがあります。
新しいファイルはアルファベット順に並べる必要があり、重複した内容はありません(各単語は一度だけ含める必要があります)。
理想的には、コマンドは2番目のファイルを確認し、そのファイルに含まれる単語が重複するのを防ぐことができるはずです。 (これにより、私はすでに知っていて繰り返しないファイルや単語を作成できます。)
これを行うのに適したコマンドはありますか?
答え1
「単語」が一連の単語として定義されている場合「馬が性格を作る」(通常は文字、数字、および/または下線で定義されています)その後、GNUを使用して目的の操作を実行できますawk
。sort
awk -v RS='\\W+' 'ARGIND==1{arr[$0]; next} !($0 in arr)' skip file | sort -u
skip
file
印刷したくない本を含む単語ファイルはどこにありますか?
\W
ただの略語です[^[:alnum:]_]
。ただし、「単語」に対する定義に数字が含まれていない場合に変更し、RS='\\W+'
アポストロフィRS='[^[:alpha:]_]+'
とハイフンが含まれている場合に変更するか、あなたが考える文字セット定義の否定と一致するようにRS="[^[:alpha:]_'-]+"
変更してください。RS
別のコンテンツの単語を構成します。」
awkを学ぶには、Arnold RobbinsのEffective AWKプログラミング第5版を読んでください。