tr详解
时间:2008-11-18 来源:ubuntuer
tr
字符转换过滤器.
注意: 必须使用引用或中括号, 这样做才是合理的. 引用可以阻止 shell 重新解释出现在
tr 命令序列中的特殊字符.中括号应该被引用起来防止被 shell 扩展.
无论 tr "A-Z" "*" <filename 还是 tr A-Z \* <filename 都可以将 filename 中的大
写字符修改为星号(写到 stdout).但是在某些系统上可能就不能正常工作了, 而 tr A-Z '
[**]' 在任何系统上都可以正常工作.
-d 选项删除指定范围的字符.
1 echo "abcdef" # abcdef
2 echo "abcdef" | tr -d b-d # aef
3
4
5 tr -d 0-9 <filename
6 # 删除 "filename" 中所有的数字.
--squeeze-repeats (或 -s) 选项用来在重复字符序列中除去除第一个字符以外的所有字符. 这个
选项在删除多余的 whitespace 的时候非常有用.
bash$ echo "XXXXX" | tr --squeeze-repeats 'X'
X
-c "complement" 选项将会 反转 匹配的字符集. 通过这个选项, tr 将只会对那些 不
匹配的字符起作用.
bash$ echo "acfdeb123" | tr -c b-d +
+c+d+b++++
注意 tr 命令支持 POSIX 字符类. [1]
bash$ echo "abcd2ef1" | tr '[:alpha:]' -
----2--1
字符转换过滤器.
注意: 必须使用引用或中括号, 这样做才是合理的. 引用可以阻止 shell 重新解释出现在
tr 命令序列中的特殊字符.中括号应该被引用起来防止被 shell 扩展.
无论 tr "A-Z" "*" <filename 还是 tr A-Z \* <filename 都可以将 filename 中的大
写字符修改为星号(写到 stdout).但是在某些系统上可能就不能正常工作了, 而 tr A-Z '
[**]' 在任何系统上都可以正常工作.
-d 选项删除指定范围的字符.
1 echo "abcdef" # abcdef
2 echo "abcdef" | tr -d b-d # aef
3
4
5 tr -d 0-9 <filename
6 # 删除 "filename" 中所有的数字.
--squeeze-repeats (或 -s) 选项用来在重复字符序列中除去除第一个字符以外的所有字符. 这个
选项在删除多余的 whitespace 的时候非常有用.
bash$ echo "XXXXX" | tr --squeeze-repeats 'X'
X
-c "complement" 选项将会 反转 匹配的字符集. 通过这个选项, tr 将只会对那些 不
匹配的字符起作用.
bash$ echo "acfdeb123" | tr -c b-d +
+c+d+b++++
注意 tr 命令支持 POSIX 字符类. [1]
bash$ echo "abcd2ef1" | tr '[:alpha:]' -
----2--1
相关阅读 更多 +