|
12.1.7 删除指定字符
偶尔会从下载文件中删除只包含字母或数字的列。需要结合使用- c和- s选项完成此功能。
下面的文件包含一个星期的日程表。任务是从其中删除所有数字,只保留日期。日期有大
写,也有小写格式。因此需指定两个字符范围[ a - z ]和[ A - Z ],命令tr -cs "[a-z][A-Z]""[\012*]"将
第12章tr 用法121
下载
文件每行所有不包含在[ a - z ]或[ A - Z ](所有希腊字母)的字符串放在字符串1中并转换为一新
行。- s选项表明压缩所有新行, - c表明保留所有字母不动。原文件如下,后跟t r命令:
12.1.8 转换控制字符
t r的第一个功能就是转换控制字符,特别是从d o s向U N I X下载文件时,忘记设置f t p关于回
车换行转换的选项时更是如此。
下面是故意没有设置转换开关的一个文本文件,是关于文具需求的一部分内容。使用c a t
- v显示控制字符。
猜想‘^ ^ ^ ^ ^ ^’是t a b键。每一行以C t r l - M结尾,文件结尾C t r l - Z,以下是改动方法。
使用- s选项,查看A S C I I表。^的八进制代码是1 3 6,^ M是0 1 5,t a b键是0 11,^ Z是0 3 2 ,下
面将按步骤完成最终功能。
用t a b键替换^ ^ ^ ^ ^ ^,命令为" \ 1 3 6 " " [ \ 0 11 * ] "。将结果重定向到临时工作文件s t a t . t m p。
用新行替换每行末尾的^ M,并用\ n去除^ Z,输入要来自于临时工作文件s t a t . t m p。
最后去除所有的控制字符,文件就可以使用了。
12.1.9 快速转换
如果需要删除文件中^ M,并代之以换行。使用命令:
或者用下述命令得同样结果。
也可以用下述命令:
122 第二部分文本过滤
下载
另一个一般的D o s到U N I X转换是命令:
将删除所有^ M和^ Z,代之以换行。
要删除所有的t a b键,代之以空格,使用命令:
替换p a s s w d文件中所有冒号,代之以t a b键,可以增加可读性。将冒号引起来,指定替换
字符串中t a b键八进制值0 11,下面是p a s s w d文件,后跟t r命令结果:
或者用下述命令得同样结果。这里使用t a b键的速记符。 |
|