ファイルの最初の列のみを小文字に変換

ファイルの最初の列のみを小文字に変換

RedHatには、次のデータを含むファイルがあります。

$ cat hello.txt
mumdfw2as123v USER=wladmin                                                MOUNTPOINT=/apps
MUMFW2as97v.mrshmc.com USER=wladmin                                      MOUNTPOINT=/apps
MUMFW3AS65V USER=user                                                    MOUNTPOINT=DR-/u
MUMDFW3AS66V USER=oracle                                                  MOUNTPOINT=/u
mumdfw3AS69v_oracle ansible_host=mumdfw3as69v USER=oracle                 MOUNTPOINT=/web

最初の列だけを小文字に変換し、変更を同じファイルに保存したいと思います。

nawk「nawk」を使って解決策を見つけたので、ツールはありません。

何か提案してもらえますか?

ベストアンサー1

簡単な方法は次のとおりです。

$ awk -F'[ ]' '{$1=tolower($1)}1' file
mumdfw2as123v USER=wladmin                                                MOUNTPOINT=/apps
mumfw2as97v.mrshmc.com USER=wladmin                                      MOUNTPOINT=/apps
mumfw3as65v USER=user                                                    MOUNTPOINT=DR-/u
mumdfw3as66v USER=oracle                                                  MOUNTPOINT=/u
mumdfw3as69v_oracle ansible_host=mumdfw3as69v USER=oracle                 MOUNTPOINT=/web

これは$1(最初のフィールド)を小文字に変更します。1最後はawk「この行を印刷してください」の略です。興味深いことに、-F'[ ]'入力フィールドの区切り文字を空白に設定しましたが、これは正規表現(文字クラス)として表示されるため、awkは入力行を再計算するため、入力フィールドの元の間隔を維持できます。入力ファイル。それなしで私達は次を得ます:

$ awk '{$1=tolower($1)}1' file
mumdfw2as123v USER=wladmin MOUNTPOINT=/apps
mumfw2as97v.mrshmc.com USER=wladmin MOUNTPOINT=/apps
mumfw3as65v USER=user MOUNTPOINT=DR-/u
mumdfw3as66v USER=oracle MOUNTPOINT=/u
mumdfw3as69v_oracle ansible_host=mumdfw3as69v USER=oracle MOUNTPOINT=/web

ファイルを適切に編集するには、GNUを使用できますawk(Linuxシステムではデフォルト)。

$ gawk -F'[ ]' -i inplace '{$1=tolower($1)}1' file
$ cat file
mumdfw2as123v USER=wladmin                                                MOUNTPOINT=/apps
mumfw2as97v.mrshmc.com USER=wladmin                                      MOUNTPOINT=/apps
mumfw3as65v USER=user                                                    MOUNTPOINT=DR-/u
mumdfw3as66v USER=oracle                                                  MOUNTPOINT=/u
mumdfw3as69v_oracle ansible_host=mumdfw3as69v USER=oracle                 MOUNTPOINT=/web

おすすめ記事