sed를 사용하여 문자열의 첫 번째 문자를 새 줄로 묶습니다.

sed를 사용하여 문자열의 첫 번째 문자를 새 줄로 묶습니다.

문자열이 있다고 가정하면, 특별히 문자열 로 바꾸지 않고도 foobar 비슷한 것을 쉽게 생성할 수 있습니까 ?[f]oobarf[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

관련 정보