다음 줄에 있는 각 단어의 첫 문자를 어떻게 대문자로 변환합니까 gr-description:
?
예를 들어:
$ cat /tmp/test1
groMail:
[email protected]
gr-description:
abc-location-999
group-emailid:
[email protected]
members:
[email protected]
[email protected]
[email protected]
출력은
groMail:
[email protected]
gr-description:
Abc-Location-999
group-emailid:
[email protected]
members:
[email protected]
[email protected]
[email protected]
다음 명령을 시도했지만 병합할 수 없습니다
sed -n '/gr-description:/{n;p;}' grp1 | sed 's/\<./\u&/g'
답변1
sed
확장 기능이 있는 GNU 또는 다른 것을 사용하는 것 같으 \u
므로 다음을 수행할 수 있습니다.
sed -e '/gr-description/{n;s/\b./\u&/g;}' < test1
이는 다음을 포함하는 행과 일치한 gr-description
다음 실행됩니다.{}
그 순간.n
다음 줄로 이동하여 방금 일치한 줄을 인쇄한 다음s
이 명령은 단어 경계(\b
또는\<
) 및 대문자 버전(\u&
).
이 모든 작업은 한 파이프를 sed
다른 파이프에 연결하지 않고 한 번에 수행됩니다. 이는 원하는 작업을 수행하지 않습니다. 진행하면서 스트림을 편집하는 대신 라인을 출력하기만 하면 됩니다.