Regex 将某个关键字后的单词转换为小写
我正在尝试使用shell脚本将Regex 将某个关键字后的单词转换为小写,regex,bash,shell,unix,sed,Regex,Bash,Shell,Unix,Sed,我正在尝试使用shell脚本将之后的所有单词转换为: SELECT first_name AS First_Name, last_name AS Last_Name, AGE('1990-10-12') AS Person_Age FROM table1 我需要的输出是 SELECT first_name AS first_name, last_name AS last_name, AGE('1990-10-12') AS person_age FROM table1 如果您使用了GNU s
之后的所有单词转换为
:
SELECT
first_name AS First_Name,
last_name AS Last_Name,
AGE('1990-10-12') AS Person_Age
FROM table1
我需要的输出是
SELECT
first_name AS first_name,
last_name AS last_name,
AGE('1990-10-12') AS person_age
FROM table1
如果您使用了GNU sed,则可以使用对的扩展,将其后面的所有内容转换为小写:
$ sed -E 's/(AS)(.*)/\1\L\2/' infile
SELECT
first_name AS first_name,
last_name AS last_name,
AGE('1990-10-12') AS person_age
FROM table1
如果您使用了GNU sed,则可以使用对的扩展,将其后面的所有内容转换为小写:
$ sed -E 's/(AS)(.*)/\1\L\2/' infile
SELECT
first_name AS first_name,
last_name AS last_name,
AGE('1990-10-12') AS person_age
FROM table1
使用awk
awk '/AS/ {for (i=1; i<=NF; i++) if ($i == "AS") $(i+1) = tolower($(i+1))} {print}' < infile.sql
awk'/AS/{for(i=1;i使用awk
awk '/AS/ {for (i=1; i<=NF; i++) if ($i == "AS") $(i+1) = tolower($(i+1))} {print}' < infile.sql
awk'/AS/{for(i=1;i使用Perl
$ cat aswin.sql
SELECT
first_name AS First_Name,
last_name AS Last_Name,
AGE('1990-10-12') AS Person_Age
FROM table1
$ perl -ne ' { s/\bas\b\s+\b(.+?)\b/AS \L\1\E/gi; print } ' aswin.sql
SELECT
first_name AS first_name,
last_name AS last_name,
AGE('1990-10-12') AS person_age
FROM table1
使用Perl
$ cat aswin.sql
SELECT
first_name AS First_Name,
last_name AS Last_Name,
AGE('1990-10-12') AS Person_Age
FROM table1
$ perl -ne ' { s/\bas\b\s+\b(.+?)\b/AS \L\1\E/gi; print } ' aswin.sql
SELECT
first_name AS first_name,
last_name AS last_name,
AGE('1990-10-12') AS person_age
FROM table1