Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用bash在单词的第一个字符周围添加[]括号_Bash_Sed - Fatal编程技术网

如何使用bash在单词的第一个字符周围添加[]括号

如何使用bash在单词的第一个字符周围添加[]括号,bash,sed,Bash,Sed,我的问题在这里描述 使用上面的链接引用,我在过去的4个小时内尝试使用bash获得结果 使用sed的任何解决方法 #!/bin/bash DESC="openerp-server" initial="$(echo "$DESC" | sed 's/(.)/'[\1]'/g')" echo $initial 谢谢。使用sed: echo "string" | sed 's/^\(.\)/[\1]/' echo "string" | sed 's/./[\0]/' # The sa

我的问题在这里描述

使用上面的链接引用,我在过去的4个小时内尝试使用bash获得结果

使用sed的任何解决方法

#!/bin/bash
DESC="openerp-server"

initial="$(echo "$DESC" | sed 's/(.)/'[\1]'/g')"
echo $initial
谢谢。

使用
sed

echo "string" | sed 's/^\(.\)/[\1]/'
echo "string" | sed 's/./[\0]/'         # The same but simplified
输出:

[s]tring
使用
sed

echo "string" | sed 's/^\(.\)/[\1]/'
echo "string" | sed 's/./[\0]/'         # The same but simplified
输出:

[s]tring

bash
提供了标准参数扩展运算符的扩展,使您可以轻松访问参数的第一个字符和其余字符

$ DESC="openerp-server"
$ DESC="[${DESC:0:1}]${DESC:1}"
$ echo "$DESC"
[o]penerp-server
与POSIX兼容的版本稍长,需要一个临时变量来保持尾部

$ DESC="openerp-server"
$ DESC_tail=${DESC#?}
$ DESC="[${DESC%$DESC_tail}]$DESC_tail"
$ echo "$DESC"
[o]penerp-server

bash
提供了标准参数扩展运算符的扩展,使您可以轻松访问参数的第一个字符和其余字符

$ DESC="openerp-server"
$ DESC="[${DESC:0:1}]${DESC:1}"
$ echo "$DESC"
[o]penerp-server
与POSIX兼容的版本稍长,需要一个临时变量来保持尾部

$ DESC="openerp-server"
$ DESC_tail=${DESC#?}
$ DESC="[${DESC%$DESC_tail}]$DESC_tail"
$ echo "$DESC"
[o]penerp-server

awk
版本:

echo "string" | awk '{$1="["$1"]"}8' FS= OFS=
[s]tring

awk
版本:

echo "string" | awk '{$1="["$1"]"}8' FS= OFS=
[s]tring

伟大的我在踢自己。你能给我推荐一个学习sed的起点吗。我很感激你的回答…-)我建议这个很棒!我在踢自己。你能给我推荐一个学习sed的起点吗。我很感激你的回答…-)我认为你目前的尝试几乎是正确的。您只需在:
“[\1]”
周围放置单引号,并在匹配组中转义
()
\(.\)
。或者,您可以将选项
-r
传递到
sed
。使用它,将不再需要它来转义
()
。(但是
-r
不是POSIX)您当前的尝试几乎是正确的。您只需在:
“[\1]”
周围放置单引号,并在匹配组中转义
()
\(.\)
。或者,您可以将选项
-r
传递到
sed
。使用它,将不再需要它来转义
()
。(但是
-r
不是POSIX)