每天回顾linux命令(tr)

tr命令
tr命令可以对目标输入的字符进行替换、压缩和删除。即可以将一组字符变成另外一组字符,是sed的简化版。

语法
tr (选项) (参数) 或者 tr 参数 (选项)

选项
-c,-C或–complement:取代所有不属于第一字符集的字符,一般和-d配合使用。

root@62bf1a913608:/home/wzm/testsplit# echo "hello 123 world 45 6" | tr -d -c '0-9 \n'
 123  45 6
root@62bf1a913608:/home/wzm/testsplit#

-d或–delete:删除所有属于第一字符集的字符,入上面例子。
-s或–squeeze-repeats:把连续重复的字符以单独字符表示。

root@62bf1a913608:/home/wzm/testsplit# echo "hello 123 world 45 6" | tr -s 'l'
helo 123 world 45 6

-t或–truncate-set1:先删除第一字符集比第二字符集多长的字符。

root@62bf1a913608:/home/wzm/testsplit# echo "hello 123 world 45 6" | tr -t 'hello' '123'
1233o 123 wor3d 45 6
root@62bf1a913608:/home/wzm/testsplit# echo "hello 123 world 45 6" | tr  'hello' '123'
12333 123 w3r3d 45 6

可以看出,加上-t后只替换了hel,没有的话o会被替换为3

加上些tr –help的内容:
以下是特定的字符设定(SETs),与他们所代表的意义
/NNN 8进位的 ASCII 码倒斜线(backslash)
/a 警示声 (BEL)
/b 光标倒退一格字符(backspace)
/c 在行尾不加上换行字符(同 -n 选项的作用)
/f 换页(form feed)
/n 换行(new line)
/r 游标回归行首(carriage return)
/t 水平跳格(horizontal tab)
/v 垂直跳格(vertical tab)
//
CHAR1-CHAR2
:字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。
[CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止
[CHAR*REPEAT]
:这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)
[:alnum:] :所有字母字符与数字
[:alpha:] :所有字母字符
[:blank:] :所有水平空格
[:cntrl:] :所有控制字符
[:digit:] :所有数字
[:graph:] :所有可打印的字符(不包含空格符)
[:lower:] :所有小写字母
[:print:] :所有可打印的字符(包含空格符)
[:punct:] :所有标点字符
[:space:] :所有水平与垂直空格符
[:upper:] :所有大写字母
[:xdigit:] :所有 16 进位制的数字
[=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

常用例子:
删除windows文件造成的‘^M’字符:
cat file | tr -d ‘\r’ > new file

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值