大文字小文字の文字列を検索し、大文字の文字列の前に配置します。

大文字小文字の文字列を検索し、大文字の文字列の前に配置します。

Webページに名前を変数として読み取るbashスクリプトがあり、このスクリプトはLASTNAME Firstname形式を使用します。

SANCHEZ Rick
SMITH Morty
VAN SOMETHING Halen

ただし、各名前を名姓としてマークする必要があります。

Rick SANCHEZ
Morty SMITH
Halen VAN SOMETHING

小文字の大文字の名前を識別し、大文字の城の前に置く方法を探しています。

私が得た最も近いもの

echo $eachname | awk '{ for (i=NF; i>1; i--) printf("%s ",$i); print $1; }'

しかし、この命令は2つの姓を持つ人々を混同させます。

Rick SANCHEZ
Morty SMITH
Halen SOMETHING VAN

ベストアンサー1

sed名前と姓が複数ある場合は、次の可能性があります。

SANCHEZ Rick Ignatius Alexander
SMITH Morty
FOO VAN SOMETHING Halen

注文する。

sed 's/^\([^a-z]*\)[[:blank:]]\(.*\)$/\2 \1/' file

出力:

Rick Ignatius Alexander SANCHEZ
Morty SMITH
Halen FOO VAN SOMETHING

これがあなたにうまくいくかどうか教えてください。

おすすめ記事