資料清理問題 - 用於刪除尾隨空格和逗號組合的正規表示式

資料清理問題 - 用於刪除尾隨空格和逗號組合的正規表示式

我的地址字串(由於最初的程式設計很差)允許輸入太多的自由文字。在清理這個繼承的混亂的過程中,我注意到在地址字段的末尾,經常有(並且經常沒有)我想要刪除的逗號。

問題是(再次,頻繁!)那些輸入資料(按線路付費...)的輸入字串如下:

`address_1_string  ,  `

這是address_1_string,後面跟著兩個空格,後面跟著我要刪除的逗號,然後再跟兩個空格。空格數量(逗號之前或之後)是任意的,通常為 0 - 5 address_string_1

所以,我正在尋找的是一個正規表示式,它到達行尾,刪除所有尾隨空格、第一個逗號,然後刪除任何更多空格,直到有效的[a-zA-Z0-9] ([:alphanum : ]?) 字元已找到。

我有一個正規表達式的概念,但這超出了我的工資等級。這是我在 Stackexchange 上的第一篇文章,所以如果我發錯地方了,請重定向我。 TIA。

答案1

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

將刪除行尾的所有空格和逗號字元。

要就地編輯文件,某些sed實作有一個受's選項-i啟發的選項:perl-i

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

相關內容