sed命令中的大小写不敏感替换表示符本身显示为不区分大小写。将i/I附加到sed语句似乎会产生相同的结果。
echo a | gsed ’s_A_Z_i’返回:Z
echo a | gsed ’s_A_Z_I’还返回:Z
echo A | gsed ’s_A_z_I’返回:Z
echo A | gsed ’s_a_Z_i’返回:Z
gsed返回特定于案例的替代文本。
是否有一种紧凑的方法来指定不区分大小写的搜索,并在匹配查找的情况下进行替换?(将a替换为z,A替换为Z)
当然,这个问题可以通过两个命令来解决,但是我正在寻找更紧凑的东西。
其次,i/I后缀的效果是否存在差异?(不是-i标志)
这与a previous question的不同之处在于!在OSX中使用gnu-sed,经过标准的自制安装。
我没有想到具体的应用程序。我正在学习OSX上的gnu-sed的一些复杂之处,并想知道它是如何处理案例的。
发布于 2019-05-13 04:47:40
i/I选项只修改s命令的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/https://stackoverflow.com/questions/56105674
复制相似问题