Pomocí sed
, a za předpokladu, že nechcete mezeru před slovem:
$ sed 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in
Add Data
Test Something
Tell Me Who You Are
Náhrada vyhledá velké písmeno bezprostředně následující za dalším znakem, který není prázdným znakem, a mezi tyto dva znaky vloží mezeru.
Pro řetězce s více než jedním po sobě jdoucím velkým písmenem, například WeAreATeam
, tím vznikne We Are ATeam
. Chcete-li to seřadit, spusťte substituci podruhé:
$ sed -e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' \
-e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in
Perl, pomocí lookbehind a lookahead regulárních výrazů s nulovou šířkou:
$ perl -pe 's/(?<=\w)(?=[A-Z])/ /g' file.in
Tell Me Who You Are ## TellMeWhoYouAre
I Am A Regular Expression User ## IAmARegulaExpressionUser
Tato verze také odděluje po sobě jdoucí velká písmena.
sed -r -e "s/([^A-Z])([A-Z])/\1 \2/g"
Přidejte mezeru mezi písmeno, které není velkým písmenem, a písmeno, které je velké písmeno
Znovu zabalit obraz souborového systému z vmlinux.bin (vložený initramfs) bez opětovného sestavení?
Jak zjistit, zda má počítač k dispozici modul TPM (Trusted Platform Module).