2017-06-26 14 views
0

私は、各単語がlinuxを使ってファイルに何回出現するかを調べようとしています。linuxでsedを使って単語の終わりと先頭から句読点を削除するには?

以下のコードを使用して、ファイルから各単語を改行しました。

sed -i 's/ /\n/g' books2 

私は今、いくつかの単語は句読点が含まれているとして、空白で単語の開始と終了を交換しようとしています。私は現在、次のコードを使用してこれを行っていますが、動作していないようです。私がこれを持っていれば、すべての単語を数えるコマンドを実行し、すべての単語にカウントのリストを返すことができます。誰かが句読点を削除する方法について私を修正することはできますか?

sed -i 's/\([^[:alpha:]]\)$//' books2 #this is my attempt to remove the punctuality at the end of the word 


sed -i 's/\([^[:alpha:]]\)^.*//' books2 #this is my attempt to remove the punctuality from the front. 

上記のいずれかのコード行を実行すると、ファイルが空になります。どうしてこれなの?

sed 's/^[^[:alpha:]]\+//' books2 

これは、行の先頭にすべての非アルファベット文字を削除します:あなたは、次のコマンドを使用することができます行の先頭から句読点を削除するには

+0

[GNU awk](https://www.gnu.org/software/gawk/)の詳細については、 –

答えて

1

。また、複数のインスタンスに一致しますが、例は1つのインスタンスにのみ一致します。あなたは、次のコマンドを使用することができます行の末尾から句読点を削除するには

sed 's/[^[:alpha:]]\+$//' books2 

何puncutationは言葉に存在しない場合、あなたにも実行することができます:

sed 's/[^[:alpha:]]\+//' books2 

を削除するには1つのコマンド内のアルファベット以外の文字以外のすべての文字。

関連する問題