我的地址字符串(由于最初的编程很差)允许输入太多的自由文本。在清理这个继承的混乱的过程中,我注意到在地址字段的末尾,经常有(并且经常没有)我想要删除的逗号。
问题是(再次,频繁!)那些输入数据(按线路付费...)的输入字符串如下:
`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