8

フォルダー内のすべてのファイル(.javaファイルなど)のすべてのアンダースコアを置き換え、次の文字を大文字に変換する方法があるかどうか疑問に思っていました。

  • getEmployee_NamegetEmployeeName
  • us_employee_nameusEmployeeName

そして、 があり、両方を大文字にしたい場合はどうなるでしょうかidID

  • us_employee_idusEmployeeID?

私はまだ勉強中なので、まだ何も試していません。のようなことはできますかs/_/\U\1/gsedまたはこれを行うためにスクリプトを使用できますか?

4

4 に答える 4

10

あなたの提案's/_/\U\1/g'は非常に近いです。GNU sed がある場合は、次のように動作するはずです。

sed 's/_\(.\)/\U\1/g'

(あなたが望むものは必ずしもあなたが望むものとは限らないので、私はすべきだと言います。)

于 2013-06-27T01:48:22.327 に答える
1

Perl スクリプト:

use String::CamelCase qw(camelize);

while (<>) {
  print camelize($_);
}
于 2013-06-27T01:05:35.077 に答える
1

awk から少し冗長ですが、すべての gnu/non-gnu Unix フレーバーで動作します。

> s='get_employee_Name'
> awk -F _ '{printf "%s", $1; for(i=2; i<=NF; i++) printf "%s", toupper(substr($i,1,1)) substr($i, 2); print"";}' <<< "$s"
getEmployeeName
于 2013-06-27T06:20:08.290 に答える