sed は、1 行の単語間のスペースを削除します。

sed は、1 行の単語間のスペースを削除します。

すべて大文字のいくつかの一般的な英語の単語を含むテキストファイルがあります。残念ながら、これらの単語はすべて最初の文字と次の文字の間にスペースがあるため許容できません。私はsedこれらのイベントに一致する式を書いてみましたが、うまくいきsed 's/[A-Z] [A-Z][A-Z]*/ました。しかし、交換部分の作成には成功しませんでした。

ベストアンサー1

次のように、単語の2つの部分をグループ化して、交換時に逆参照として使用する必要があります。

sed -e 's/\([A-Z]\) \([A-Z]\+\)/\1\2/g'

また、表示するための*使用を変更しました。+1つ以上代わりに前の文字が表示されます。0以上、いくつかの手順を保存してください。

また、「私」という単語が単独で見つかると、全体の表現に問題がある可能性があります。 「私」がそれ自体の単語であるのか、それとも次の単語にリンクするのかを知るために一致させることができる他のものはありますか? 「A」とは別の1文字の単語はどうですか?

「ABIRD」や「IWENT」などの代替単語によって発生したエラーを特定するのに役立つように、この単純なテキストハックとスペルチェックの種類を組み合わせることをお勧めします。正規表現をいくら操作しても、説明のように壊れたテキストが多い場合は完璧な結果が得られませんが、正規表現で大まかにまとめた後は続行できます。スペルチェッカー(実行することもできます)などのより詳細な方法を使用してください。コマンドラインから自動的に実行して問題をクリーンアップします。最後に手動校正を依頼してください!

おすすめ記事