gsed 是否有相对大小写说明符?
Is there a relative case specifier for gsed?
sed 命令中不区分大小写的替换符号本身似乎不区分大小写。将 i/I 附加到 sed 语句似乎给出了相同的结果。
echo a | gsed ’s_A_Z_i’
returns: Z
echo a | gsed ’s_A_Z_I’
还有returns: Z
echo A | gsed ’s_A_z_I’
returns: z
echo A | gsed ’s_a_Z_i’
returns: Z
gsed returns 特定于案例的替换文本。
有没有一种紧凑的方法来指定不区分大小写的搜索,并在与查找的大小写匹配的情况下进行替换?
(将 a 替换为 z,将 A 替换为 Z)
当然,这个问题可以用两个命令解决,但我正在寻找更紧凑的东西。
其次,i/I后缀的效果有区别吗? (不是 -i 标志)
这与[上一个问题](How to use GNU sed on Mac OS X) 相同,但有所不同!关于在 OSX 中使用 gnu-sed,在标准自制程序安装后。
我心中没有具体的应用。我正在 OSX 上学习 gnu-sed 的一些复杂知识,想知道它是如何处理大小写的。
s
命令的 i/I
选项仅修改 PATTERN
而不会
影响REPLACEMENT
。请想象一下下面的用法:
str='Login'
echo "$str" | sed 's/login/Login/i'
此示例尝试规范化 upper camel case
中的输入
接受 login
和 Login
。如果 i/I
选项影响
REPLACEMENT
,我们无法得到预期的结果。
如果您想将 a 映射到 z 和 A 到 Z,请尝试:
sed y/Aa/Zz/
sed 命令中不区分大小写的替换符号本身似乎不区分大小写。将 i/I 附加到 sed 语句似乎给出了相同的结果。
echo a | gsed ’s_A_Z_i’
returns: Z
echo a | gsed ’s_A_Z_I’
还有returns: Z
echo A | gsed ’s_A_z_I’
returns: z
echo A | gsed ’s_a_Z_i’
returns: Z
gsed returns 特定于案例的替换文本。
有没有一种紧凑的方法来指定不区分大小写的搜索,并在与查找的大小写匹配的情况下进行替换? (将 a 替换为 z,将 A 替换为 Z)
当然,这个问题可以用两个命令解决,但我正在寻找更紧凑的东西。
其次,i/I后缀的效果有区别吗? (不是 -i 标志)
这与[上一个问题](How to use GNU sed on Mac OS X) 相同,但有所不同!关于在 OSX 中使用 gnu-sed,在标准自制程序安装后。
我心中没有具体的应用。我正在 OSX 上学习 gnu-sed 的一些复杂知识,想知道它是如何处理大小写的。
s
命令的 i/I
选项仅修改 PATTERN
而不会
影响REPLACEMENT
。请想象一下下面的用法:
str='Login'
echo "$str" | sed 's/login/Login/i'
此示例尝试规范化 upper camel case
中的输入
接受 login
和 Login
。如果 i/I
选项影响
REPLACEMENT
,我们无法得到预期的结果。
如果您想将 a 映射到 z 和 A 到 Z,请尝试:
sed y/Aa/Zz/