tr命令

-- TOC --

Linux命令行有好些专门处理字符串的工具,tr算其中一个,它用来转换或删除字符。

tr - translate or delete characters

$ echo '123123123' | tr '1' 'a'
a23a23a23
$ echo '123123123' | tr '12' 'ab'
ab3ab3ab3
$ echo '123123123' | tr '123' 'abc'
abcabcabc

-d参数用来删除:

$ echo '123123123' | tr -d '1'
232323
$ echo '123123123' | tr -d '12'
333
$ echo '123123123' | tr -d '123'

-s参数用来去重(只对连续出现的字符去重,中间有间隔的情况不算重复):

$ echo '111222333111222333' | tr -s '123'
123123
$ echo 'a...b...c...d' | tr -s '.'
a.b.c.d

-c参数,complement,表示反过来,排除掉,指定哪些是不处理的字符:

$ # 排除掉2和\n,其它都替换成a
$ echo '123123123' | tr -c '2\n' 'a'
a2aa2aa2a
$ echo '123123123' | tr -c '13\n' 'b'
1b31b31b3
$ # 除了1,3和换行,其它都删除
$ echo '123123123' | tr -dc '13\n'
131313

解释一下,echo默认会输出一个换行,因此带上\n,表示不对换行符号进行处理。

本文链接:https://cs.pynote.net/sf/linux/shell/202201043/

-- EOF --

-- MORE --