Chinaunix

标题: Unix中tr命令“字符”处理的实用例子 [打印本页]

作者: 凝望长空    时间: 2012-02-26 20:43
标题: Unix中tr命令“字符”处理的实用例子

Unix中tr命令“字符”处理的实用例子











tr是Unix系统非常实用的工具,其实用tr做到的事情,几乎都可用sed做到,你可以把tr当作是实现sed许多基本功能的sed“简体”。我认为tr是简单的“字符”处理工具,而sed是功能非常强大的“字符串”处理工具。



【注意】tr是单个字符处理工具,而不是字符串处理工具!



我自己用过比较实用的例子如下:



1、将文件file中出现的"abc"替换为"xyz"



# cat file | tr "abc" "xyz" > new_file



【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。



2、使用tr命令“统一”字母大小写

(小写 --> 大写)
# cat file | tr [a-z] [A-Z] > new_file

(大写 --> 小写)
# cat file | tr [A-Z] [a-z] > new_file



3、把文件中的数字0-9替换为a-j



# cat file | tr [0-9] [a-j] > new_file


4、删除文件file中出现的"Snail"字符



# cat file | tr -d "Snail" > new_file



【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。



5、删除文件file中出现的换行'\n'、制表'\t'字符



# cat file | tr -d "\n\t" > new_file



不可见字符都得用转义字符来表示的,这个都是统一的。



6、删除“连续着的”重复字母,只保留第一个



# cat file | tr -s [a-zA-Z] > new_file



7、删除空行



# cat file | tr -s "\n" > new_file



8、删除Windows文件“造成”的'^M'字符



# cat file | tr -d "\r" > new_file
或者
# cat file | tr -s "\r" "\n" > new_file



【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者



9、用空格符\040替换制表符\011



# cat file | tr -s "\011" "\040" > new_file



10、把路径变量中的冒号":",替换成换行符"\n"



# echo $PATH | tr -s ":" "\n"



这样看到的路径变量是不是更清晰。
作者: 芯忻相依    时间: 2012-02-26 20:43
谢谢分享




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2