データクリーンアップの問題 - 末尾のスペースとコンマの組み合わせを削除する正規表現

データクリーンアップの問題 - 末尾のスペースとコンマの組み合わせを削除する正規表現

私のアドレス文字列(初期プログラミングの不良のため)にあまりにも多くのフリーテキストを入力することができました。この継承された混乱をクリーンアップする過程で、アドレスフィールドの末尾に削除したいカンマがしばしば(そしてしばしばそうではない)ことがわかりました。

問題は(再び、頻繁に!)対応する入力データ(ラインごとの支払い...)の入力文字列が次のようになることです。

`address_1_string  ,  `

これは address_1_string で、その後に 2 つのスペースがあり、その後に削除するコンマがあり、次に 2 つのスペースがあります。スペースの数(カンマの前または後ろ)は任意であり、通常0〜5です。address_string_1問題は、それ自体に内部(有効な)カンマがある可能性があるという事実によってさらに悪化します。

だから私が探しているのは行の終わりに達し、すべての末尾のスペースと最初のカンマを削除してから、有効な[a-zA-Z0-9]([:アルファベット:]?)文字が見つかりました。

正規表現の概念がありますが、給与評価を超えています。これはStackexchangeの最初の投稿なので、間違った場所に投稿した場合はリダイレクトしてください。ティア。

ベストアンサー1

< input sed 's/[[:space:],]*$//' > output

行末のすべてのスペースとカンマ文字が削除されます。

ファイルを適切に編集するために、一部の実装には のsedオプションに-i触発されたオプションがあります。perl-i

sed -i 's/[[:space:],]*$//' input-and-output    # GNU, busybox, NetBSD, OpenBSD
sed -i '' 's/[[:space:],]*$//' input-and-output # FreeBSD, macOS

おすすめ記事