在bash shell脚本中,如何用正则表达式插入空格

问题描述 投票:0回答:1

这是我的脚本

#!bin/bash

STRING1='abcdefg'
STRING2='1234567'
SEDPARSE1='sed -e s/.*(bc).*(23).*/\1\t\2/g'
SEDPARSE2='sed -e s/.*(bc).*(23).*/\1\s\2/g'
SEDPARSE3='sed -e s/.*(bc).*(23).\*/\1 \2/g'

echo "${STRING1}${STRING2}" | ${SEDPARSE1}
echo "${STRING1}${STRING2}" | ${SEDPARSE2}
echo "${STRING1}${STRING2}" | ${SEDPARSE3}

只有 SEDPARSE1 有效,但它插入的是“制表符”而不是“空格”。 SEDPARSE2 和 SEDPARSE3 不起作用

我的脚本有问题吗?谢谢!

我期望结果是“bc 23”,其中“bc”和“23”之间的字符是空格,而不是制表符。

regex bash sed
1个回答
0
投票

变量保存数据。函数保存代码。不要将代码放入变量中!在许多情况下,人们尝试将命令或命令参数放入变量中然后运行它们。每个案例都需要单独处理。

BashFAQ/050

© www.soinside.com 2019 - 2024. All rights reserved.