linux中tr命令

tr用来转换或者删除一段文字。

1、实现大小写转换

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt  ## 测试数据
i A E F
d q J M
S e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr [A-Z] [a-z]  ##全部转换为小写
i a e f
d q j m
s e n f
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q J M
S e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr [a-z] [A-Z]  ## 全部转换为大小
I A E F
D Q J M
S E N F
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q J M
S e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr [AF] [af]   ##转换指定字符
i a E f
d q J M
S e N f
复制代码

 

2、行与列数据的转换

a、行转列

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q J M
S e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr " " "\n"  ## 行转列,将空格替换为换行符
i
A
E
F
d
q
J
M
S
e
N
f
复制代码

 

b、列转行

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt  ## 测试数据
i
A
E
F
d
q
J
M
S
e
N
f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr "\n" " "    ## 末尾多出空格,但是没有换行符
i A E F d q J M S e N f root@DESKTOP-1N42TVH:/home/test#
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i
A
E
F
d
q
J
M
S
e
N
f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr "\n" " " | sed 's/.$/\n/'  ## 利用sed将末尾的空格转换为换行符
i A E F d q J M S e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr "\n" " " | sed 's/.$/\n/' | cat -A  
i A E F d q J M S e N f$
复制代码

 

3、-d 删除指定字符

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q d M
d e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -d "E"  ## 删除字符E
i A  F
d q d M
d e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q d M
d e N f   
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -d "d"   ##删除字符d
i A E F
 q  M
 e N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -d [dE]  ##同时删除字符d和E
i A  F
 q  M
 e N f
复制代码

 

4、利用tr删除空行

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F

d q d M


d e N f
root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
i A E F$
$
d q d M$
$
$
d e N f$
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "\n"  ##将多个换行符\n压缩为一个\n
i A E F
d q d M
d e N f
复制代码

 

5、-s 将多个连续的字符压缩为一个字符

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q ddd M
d eee N fff
root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
i A E F$
d q ddd M$
d eee N fff$
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "d"   ## 将多个连续的d压缩为一个d
i A E F
d q d M
d eee N fff
root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
i A E F$
d q ddd M$
d eee N fff$
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "def"   ##将多个连续的d、e、f压缩维唯一
i A E F d q d M d e N f
复制代码

 

压缩多个连续的空格或者制表符:

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i      A E F
d q d M
d e                     N f
root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
i      A E F$
d q d M$
d e^I^I^IN f$
root@DESKTOP-1N42TVH:/home/test# sed -n l a.txt
i      A E F$
d q d M$
d e\t\t\tN f$
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s " "   ##将多个连续的空格压缩为一个空格
i A E F
d q d M
d e                     N f
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "\t "   ##将多个连续的制表符压缩为一个制表符
i A E F
d q d M
d e     N f
复制代码

 

将多个字符压缩为指定字符:

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q ddd M
d e N ffff
root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
i A E F$
d q ddd M$
d e N ffff$
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "d" "H"   ##将多个d压缩为一个H
i A E F
H q H M
H e N ffff
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "df" "H"   ##将d和f同时压缩为H
i A E F
H q H M
H e N H
复制代码

 

 

 

6、将某个字符以外的字符替换为指定字符

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q d M
d e N f
root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
i A E F$
d q d M$
d e N f$
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -c "d" "Q"   ##将d字符以外的字符全部替换为Q
QQQQQQQQdQQQdQQQdQQQQQQQroot@DESKTOP-1N42TVH:/home/test#
root@DESKTOP-1N42TVH:/home/test# cat a.txt |tr -c "d\n" "Q"   ##将d和换行符以外的字符全部替换为Q
QQQQQQQ
dQQQdQQ
dQQQQQQ
root@DESKTOP-1N42TVH:/home/test# cat a.txt |tr -c "d\n " "Q"  ##将d、换行符、空格以外的字符全部替换为Q
Q Q Q Q
d Q d Q
d Q Q Q
复制代码

 

7、删除指定字符以外的字符

复制代码
root@DESKTOP-1N42TVH:/home/test# ls
a.txt
root@DESKTOP-1N42TVH:/home/test# cat a.txt
i A E F
d q d M
d e N f
root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
i A E F$
d q d M$
d e N f$
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -cd "d"   ## 删除d字符以外的所有字符
dddroot@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -cd "d\n"  ## 删除d和换行符以外的所有字符

dd
d
root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -cd "d\n "  ##删除d、换行符、空格以外的所有字符

d  d
d
复制代码

 

posted @   小鲨鱼2018  阅读(244)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-01-05 c语言中逆向显示数值
2021-01-05 c语言中后置递增运算和前置递增运算的差异
2021-01-05 c语言中后置递减运算和前置递减运算的差异
2021-01-05 c语言while循环控制循环次数
2021-01-05 c语言while循环控制循环次数操作不同写法的结束变量差异
2021-01-05 c语言中while循环限定次数的操作
2021-01-05 c语言中表示乘方的运算
点击右上角即可分享
微信分享提示