数据清理问题 - 用于删除尾随空格和逗号组合的正则表达式

数据清理问题 - 用于删除尾随空格和逗号组合的正则表达式

我的地址字符串(由于最初的编程很差)允许输入太多的自由文本。在清理这个继承的混乱的过程中,我注意到在地址字段的末尾,经常有(并且经常没有)我想要删除的逗号。

问题是(再次,频繁!)那些输入数据(按线路付费...)的输入字符串如下:

`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

相关内容