句読点、数字、大文字をすべて削除し、1行に単語が1つだけ含まれるようにファイルを変更したいと思います。例:
こんにちは、元気にしてください!
どうやって
過ごすか
少し助けて、私はこれを思い出しました。
tr -d '[:punct:]' < file | tr -s '[:space:]' '\n' | tr -d '[0-9]' | tr '[A-Z]' '[a-z]' > cleanfile.txt
しかし、問題は、私のファイルにアドレスがあるときに代わりにhttpadresscomで終わるということです。
http
adress
com
また、「don't」や「readme.txt」などの単語にこの出力を持たせたくありません。
don
t
readme
txt
答え1
これにより、中にドットと引用符のみを残し、すべての単語を分離する必要があります。下線はおそらく望ましくないでしょう。それでは\w
うまくいきません。
]# grep -oE "(\w|\.\w|'\w)*" text
one
two
Three
four
linux
file
system
isn't
What
nothing
mailto
a.b
some.org
Molly's
cat
Wrote
a
readme.txt
1つまたは2つ。 34Linuxのファイルシステムとは何ですか? 「何もありません」メール宛先: [Eメール保護]モリーの猫。 readme.txt を書きました。
問題はtr
必要最小限のコンテキストです。ここではsome.org
分割したいのでついていますが、readme.txt
そうではありません。今「@」は消えた。
答え2
最初の部分では、句読点を削除せずにスペースに変換します。
2番目の場合(待たないでください):単語辞書が必要な場合や'
sを削除しない場合があります。