转换命令(y)

转换命令(y)

Content #

转换(y)命令是唯一可以处理单个字符的sed编辑器命令。该命令格式如下所示:

[address]y/inchars/outchars/

转换命令会对inchars和outchars进行一对一的映射。inchars中的第一个字符会被转换为outchars中的第一个字符,inchars中的第二个字符会被转换成 outchars中的第二个字符。这个映射过程会一直持续到处理完指定字符。如果 inchars和outchars的长度不同,则sed编辑器会产生一条错误消息。

来看一个使用转换命令的简单例子: $ cat data9.txt This is line 1. This is line 2. This is line 3. This is line 4. This is line 5. This is line 1 again. This is line 3 again. This is the last file line. $ $ sed ‘y/123/789/’ data9.txt This is line 7. This is line 8. This is line 9. This is line 4. This is line 5. This is line 7 again. This is line 9 again. This is the last file line. $ 如你所见,inchars中的各个字符都会被替换成outchars中相同位置的字符。转换命令是一个全局命令,也就是说,它会对文本行中匹配到的所有指定字符进行转换,不考虑字符出现的位置: $ echo “Test #1 of try #1.” | sed ‘y/123/678/’ Test #6 of try #6. $ sed编辑器转换了在文本行中匹配到的字符1的两个实例。你无法对特定位置字符的转换进行限制。

From #

Linux命令行与shell脚本编程大全