使用sed在数字和文本之间添加空格

使用sed在数字和文本之间添加空格,sed,Sed,我想使用sed命令在数字和文本之间添加空格,因为:16a将是16a,89jas将是89jas 请告诉我答案 谢谢以下是一个简单的思考方法: echo "1abc2abcd3efghi10z11jkl100pqrs" | \ sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g' 在数字字母字符串和字母数字字符串之间添加空格 ()用于捕获组,\1和\2用于返回第一个和第二个组 第二组俘虏 或者,当使用-E调用时,使

我想使用sed命令在数字和文本之间添加空格,因为:16a将是16a,89jas将是89jas

请告诉我答案


谢谢

以下是一个简单的思考方法:

echo "1abc2abcd3efghi10z11jkl100pqrs" | \
 sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g'
  • 在数字字母字符串和字母数字字符串之间添加空格
  • ()
    用于捕获组,
    \1
    \2
    用于返回第一个和第二个组 第二组俘虏
或者,当使用-E调用时,使用支持ERE的sed,例如GNU sed和OSX sed:

sed -E 's/[0-9]+/& /g'

很好。为确保unicode安全,
[0-9]
[a-zA-Z]
应替换为
[:digit:]
[:alpha:]
sed -E 's/[0-9]+/& /g'