2

我想将与给定正则表达式匹配的文件的所有内容替换为它们的小写等效项。像:

grep -o '[^ ]*[A-Z][^ ]*.png' file-21-05-2013.sql* | awk '{print tolower($0)}'

上面的行查找给定文件中至少包含一个大写字符的所有字符串,并打印小写等效项。

我想用上面整个命令的输出替换 grep 命令的输出

那有意义吗?

4

2 回答 2

2

如果您使用的是 GNU 系统,那么 GNU sed 具有以下扩展名:

\L
Turn the replacement to lowercase until a \U or \E is found, 

以下命令应该可以满足您的需要:

sed  "s/\([^ ]*[A-Z][^ ]*.png\)/\L\1/g" file-21-05-2013.sql*
于 2013-05-21T12:44:52.597 回答
1
sed -nr '/^.*\b(\w*[A-Z]\w*\.png).*$/{s//\1/;s/.*/\L\0/;p}' file
于 2013-05-21T12:53:19.993 回答