假设我有一个字符串,foobar
我怎样才能轻松地生成类似的东西[f]oobar
而无需专门替换f
为[f]
?
用例:我接受用户输入的进程名称,并且我想显示进程详细信息,同时消除grep
.
答案1
做:
sed 's/^./[&]/'
^.
匹配行的第一个字符- 在替换中,
&
扩展到匹配项,我们将匹配项括起来[]
例子:
% sed 's/^./[&]/' <<<'foobar'
[f]oobar
答案2
仅在 Bash 中,使用子字符串扩展:
$ pat=foobar
$ echo "[${pat:0:1}]${pat:1}"
[f]oobar
答案3
v=foobar
echo "[${v%${v#?}}]${v#?}"
[f]oobar