文字列があると仮定すると、特に文字列に置き換えることなく、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