unix, tr命令使用


tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。

带有最常用选项的tr命令格式为:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] input-file
这里:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。


例子:
wangnc> pg oops.txt
And the cowwwwws went homeeeeeeee
Or did theyyyy


如果要去除重复字母或将其压缩在一起,使用- s选项。因为都是字母,故使用[a-z]。输入文件重定向到tr命令。
wangnc> tr -s "[a-z]" < oops.txt
And the cows went home
Or did they


要删除空行,可将之剔出文件。使用-s来做这项工作。换行的八进制表示为/012,命令为:
tr -s "[/012]" < plane.txt


大小写转换:
wangnc> echo "May Day,May Day,Going Down.." | tr "[a-z]" "[A-Z]"
MAY DAY,MAY DAY,GOING DOWN..
wangnc> echo "May Day,May Day,Going Down.." | tr "[A-Z]" "[a-z]"  
may day,may day,going down..


将文本文件从小写转换为大写并将结果存入一个新文件,格式为:
cat file-to-translate | tr "[a-z]" "[A-Z]" > new-file-name


命令tr -cs "[a-z][A-Z]" "[/012*]"将文件每行所有不包含在[a-z]或[A-Z](所有希腊字母)的字符串放在字符串1中并转换为一新行。-s选项表明压缩所有新行, -c表明保留所有字母不动。


tr的第一个功能就是转换控制字符,特别是从dos向UNIX下载文件时,忘记设置ftp关于回车换行转换的选项时更是如此。
如果需要删除文件中^M,并代之以换行。使用命令:
tr -s "[/015]" "/n" < input-file
或者用下述命令得同样结果:
tr -s "[/r]" "[/n]" < input-file
也可以用下述命令:
tr -s "/r" "/n" < input-file

另一个一般的Dos到UNIX转换是命令:
tr -s "[/015/032]" "[/012*]" < input-file
将删除所有^ M和^ Z,代之以换行。

要删除所有的tab键,代之以空格,使用命令:
tr -s "[/011]" "[/040*]" < input-file

替换passwd文件中所有冒号,代之以tab键,可以增加可读性:
tr -s "[:]" "[/011]" < /etc/passwd
或者用下述命令得同样结果。这里使用tab键的速记符:
tr -s "[:]" "[/t]" < /etc/passwd

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 抱歉,我可以回答这个问题。 tr命令可以实现字符级别的转换和删除。具体实现方式如下,假设我们要将Mac格式的文件转换为Unix格式: $ tr '\r' '\n' < input_file > output_file 其中,'\r' 表示Carriage Return,'\n'表示Line Feed。这条命令将输入文件中的Carriage Return替换为Line Feed,从而实现Mac到Unix的文件格式转换。 ### 回答2: Tr命令是一个用于字符转换和替换的实用程序,可以在UNIX系统和Mac系统之间进行文件格式的转化。下面是一个在Mac上运行tr命令进行文件格式转化的代码示例: 1. 首先,打开终端应用程序,并进入你想要转化格式的文件所在的目录。 2. 使用以下命令将Mac文件格式转化为UNIX文件格式: ```shell tr '\r' '\n' < mac_file.txt > unix_file.txt ``` 这行代码中,我们使用tr命令将所有的回车符('\r')转化为换行符('\n'),从而将Mac的文件格式转化为UNIX的文件格式,并将结果输出到unix_file.txt文件中。 3. 如果你想将UNIX文件格式转化为Mac文件格式,可以使用以下代码: ```shell tr '\n' '\r' < unix_file.txt > mac_file.txt ``` 这行代码中,我们使用tr命令将所有的换行符('\n')转化为回车符('\r'),从而将UNIX的文件格式转化为Mac的文件格式,并将结果输出到mac_file.txt文件中。 这些代码示例展示了如何使用tr命令在Mac和UNIX系统之间进行文件格式的转化。你可以根据自己的需求修改文件名和文件路径来完成转化。请注意,tr命令只能转化文件内容的格式,而不能改变文件的编码方式。 ### 回答3: tr命令是一个常用的文本处理工具,可以用于实现文件格式的转换。在Mac到Unix的文件格式转化中,可以通过tr命令来删除或替换文件中的换行符。具体的代码如下: ```bash tr '\r' '\n' < input_file > output_file ``` 上述代码中,`input_file`是待转换的文件名,`output_file`是转换后的文件名。代码的作用是将文件中的Mac换行符`\r`替换为Unix换行符`\n`,然后将结果输出到新的文件中。 解释代码的具体含义如下: 1. `tr`表示使用tr命令进行文本转换。 2. `'\r'`表示选择对应的Mac换行符,`\r`是Mac文本中的换行符。 3. `'\n'`表示选择对应的Unix换行符,`\n`是Unix文本中的换行符。 4. `< input_file`表示将输入重定向到`input_file`文件中的内容。 5. `> output_file`表示将输出重定向到`output_file`文件中。 通过以上代码,就可以实现将Mac文件格式转换为Unix文件格式的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值