
私のアドレス文字列(初期プログラミングの不良のため)にあまりにも多くのフリーテキストを入力することができました。この継承された混乱をクリーンアップする過程で、アドレスフィールドの末尾に削除したいカンマがしばしば(そしてしばしばそうではない)ことがわかりました。
問題は(再び、頻繁に!)対応する入力データ(ラインごとの支払い...)の入力文字列が次のようになることです。
`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