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

时间:2014-02-24 14:45:02

标签: bash sed

我的问题在这里描述Add square bracket to the first character of string

使用上面的链接参考,我尝试从过去4小时使用bash获得结果。

使用sed的任何解决方法。

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

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

感谢。

3 个答案:

答案 0 :(得分:3)

使用sed

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

输出:

[s]tring

答案 1 :(得分:2)

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

答案 2 :(得分:0)

awk版本:

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