使用 sed 将字符串的第一个字符换行

使用 sed 将字符串的第一个字符换行

假设我有一个字符串,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

相关内容