shell | tr命令

2022/3/7 7:15:14

本文主要是介绍shell | tr命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

shell | tr命令

声明:该随笔摘抄于菜鸟教程与51脚本之家

用途

tr,translate的简写,用于字符转换、压缩重复字符或删除文件中的控制字符

tr指令从标准输入设备读取数据,经过字符串转译后,将结果输出标准输出设备(只接受标准输入,不接受文件参数)。

语法

tr [- cdst ][-- help ][-- version ][第一字符集][第二字符集]   
tr [ OPTION ]… SET1 [ SET2 ] 
参数说明
  • -c, --complement:反选设定字符。用于字符补集替换,用SET2替换SET1中不包含的字符
  • -d, --delete:删除指令字符,删除SET1指定的所有字符
  • -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符,用SET1指定的字符来替换对应的重复字符
  • -t, --truncate-set1:将SET1中字符用SET2对应位置的字符进行替换,一般缺省为-t
  • --help:显示程序用法信息
  • --version:显示程序本身的版本信息
字符集合的范围
  • \NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
  • \ 反斜杠
  • \a Ctrl-G 铃声
  • \b Ctrl-H 退格符
  • \f Ctrl-L 走行换页
  • \n Ctrl-J 新行
  • \r Ctrl-M 回车
  • \t Ctrl-I tab键
  • \v Ctrl-X 水平制表符
  • 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,代表你可自订的字符)

实例

  • -s 替换重复的字符
# 将连续重复的多个字符替换为单个字符,SET1指定了字符串要被操作的字符
echo "aaabbbaacccfddd" | tr -s [abcdf]	// 输出 abacfd
# 删除空白行
tr -s ["\n"]
  • -d 删除字符
# 删除字符串中所有字母
echo "a12HJ13fdaADff" | tr -d "[a-z][A-Z]"	//输出 1213
# 删除字符串中所有匹配SET1集合中的字符
echo "a1213fdasf" | tr -d [adfs]	// 输出 1213
# 删除文件FileName中的数字、点、空格、横杠
cat FileName | tr -d "[0-9][.][\-][ ]"
  • -t 字符替换,一般缺省为-t,SET1和SET2中字符一一对应
# 将文件FileName中的小写字母全部转换成大写字母:
cat FileName |tr a-z A-Z 
cat FileName |tr -t a-z A-Z 
cat FileName |tr [:lower:] [:upper:] 
# 将字符串中的SET1字符用SET2中字符替换
echo "a1213fdasf" | tr -t [afd] [AFO]	// 输出 A1213FOAsF
  • -c 字符补集替换
# 文件FileName
Python          2015.9 - 2018.11
Linux           2016.4 - 2018.11
C               2013.9 - 2014.9
Golang          2018.11 -
# 删除文件FileName中的除字母以外的字符
cat FileName | tr -cs "[a-z][A-Z]" "\n"
cat FileName | tr -c "[a-z][A-Z]" "#" | tr -s "#" | tr -t "#" "\n"
// 输出
Python
Linux
C
Golang


这篇关于shell | tr命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程