tr (translate)12
功能作用(Function)
转化、压缩和/或删除标准输入中的字符, 将其写入标准输出。
Translate, squeeze, and/or delete characters from standard input, writing to standard output.
语法(Synopsis)
1 | tr [OPTION]... SET1 [SET2] |
选项(Option)
-c, -C, --complement
: 使用SET1的补集(use the complement of SET1)-d, --delete
: 删除SET1中的字符, 不转化(delete characters in SET1, do not translate)-s, --squeeze-repeats
: 将最后指定的SET中列出的重复字符的每个序列替换为该字符的单次出现(replace each sequence of a repeated character that is listed in the last specified SET, with a single occurrence of that character)-t, --truncate-set1
: 截断SET1到SET2的长度(first truncate SET1 to length of SET2)
描述(Description)
SET通常为字符串。其中转义字符3有:
\NNN
: 三位八进制数值(character with octal value NNN (1 to 3 octal digits))\\
: 反斜线(backslash)\a
: 响铃符(audible BEL)4\b
: 退格符(backspace)\f
: 换页符(form feed)\n
: 换行符(new line)\r
: 回车符(return)\t
: 水平制表符(horizontal tab)\v
: 垂直制表符(vertical tab)
SET可以由以下部分组成:
CHAR1-CHAR2
: 从CHAR1到CHAR2的所有字符按升序排列[CHAR*]
: 在SET2中, SET1的长度个CHAR副本[CHAR*REPEAT]
: REPEAT个CHAR副本, 如果REPEAT以0开始, 则为八进制数[:alnum:]
: 所有字母和数字[:alpha:]
: 所有字母[:blank:]
: 所有水平空白[:cntrl:]
: 所有控制字符5[:digit:]
: 所有数字[:graph:]
: 所有可打印字符, 不包括空格[:lower:]
: 所有小写字母[:print:]
: 所有可打印字符, 包括空格[:punct:]
: 所有标点符号[:space:]
: 所有水平或垂直空白[:upper:]
: 所有大写字母[:xdigit:]
: 所有十六进制数字[=CHAR=]
: 所有等价于CHAR的字符
如果没有给出-d
且SET1
和SET2
都出现, 则进行转化(translation)。-t
只能在转化时时使用。
当SET2
的长度小于SET1
的长度, 以SET2
的最后一个字符对SET2
进行扩展并扩展到与SET1
长度相同。
当SET2
的长度大于SET1
的长度, SET2
中多余的字符将被忽略。
只有[:lower:]
和[:upper:]
保证按升序展开;在含有SET2
的转化中, 它们只能成对使用来进行大小写转换。-s
使用最后一个指定的SET
, 并用于转化(translation)或删除(deletion)。
示例(Example)
小写转大写
1 | echo "hello\t10023 world 456" | tr "a-z" "A-Z" |
1 | HELLO 10023 WORLD 456 |
"a-z"
, "A-Z"
, 都是SET, 分别表示所有的小写字母和所有的大写字母。
制表符转空格
1 | echo "hello\t10023 world 456" | tr "\t" " " |
1 | hello 10023 world 456 |
删除数字
1 | echo "hello\t10023 world 456" | tr -d "0-9" |
1 | hello world |
只保留数字
1 | echo "hello\t10023 world 456" | tr -cd "0-9" |
1 | 10023456 |
压缩字符9
和p
1 | echo "hello\t199923 world app 456" | tr -s "9p" |
1 | hello 1923 world ap 456 |
截断SET1
1 | echo "abcd" | tr -t "abcd" "123" |
1 | 123d |
1 | echo "abcd" | tr "abcd" "123" |
1 | 1233 |
man tr
1 | TR(1) User Commands TR(1) |
Reference
1. “tr命令_Linux tr 命令用法详解:将字符进行替换压缩和删除.” [Online]. Available: https://man.linuxde.net/tr. [Accessed: 12-Feb-2020] ↩
2. “Tr (Unix),” 维基百科, 自由的百科全书. 21-Dec-2019 [Online]. Available: https://zh.wikipedia.org/w/index.php?title=Tr_(Unix)&oldid=57354145. [Accessed: 12-Feb-2020] ↩
3. “转义字符_百度百科.” [Online]. Available: https://baike.baidu.com/item/%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6/86397?fromtitle=%E8%BD%AC%E4%B9%89%E7%AC%A6&fromid=6151115. [Accessed: 12-Feb-2020] ↩
4. “Bell character,” Wikipedia. 14-Sep-2019 [Online]. Available: https://en.wikipedia.org/w/index.php?title=Bell_character&oldid=915701003. [Accessed: 12-Feb-2020] ↩
5. “控制字符,” 维基百科,自由的百科全书. 31-Jan-2018 [Online]. Available: https://zh.wikipedia.org/w/index.php?title=%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6&oldid=48096464. [Accessed: 12-Feb-2020] ↩