学习啦 > 学习电脑 > 操作系统 > Linux教程 > Linux中的tr命令的详细解释

Linux中的tr命令的详细解释

时间: 佳洲1085 分享

Linux中的tr命令的详细解释

  Linux下的tr命令是一个专门用来处理字符的命令,下面由学习啦小编为大家整理了linux下的tr命令的详细解释,希望对大家有帮助!

  Linux中的tr命令的详细解释

  Linux中的tr命令用于转换或删除文件中的字符。

  tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

  语法

  tr [-cdst][--help][--version][第一字符集][第二字符集]

  tr [OPTION]…SET1[SET2]

  参数说明:

  -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换

  -d, --delete:删除指令字符

  -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符

  -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等

  --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,代表你可自订的字符)

  linux的tr命令的具体例子

  1、将文件file中出现的"abc"替换为"xyz"

  # cat file | tr "abc" "xyz" > new_file

  【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。

  2、使用tr命令“统一”字母大小写

  (小写 --> 大写)

  # cat file | tr [a-z] [A-Z] > new_file

  (大写 --> 小写)

  # cat file | tr [A-Z] [a-z] > new_file

  3、把文件中的数字0-9替换为a-j

  # cat file | tr [0-9] [a-j] > new_file

  4、删除文件file中出现的"Snail"字符

  # cat file | tr -d "Snail" > new_file

  【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。

  5、删除文件file中出现的换行'\n'、制表'\t'字符

  # cat file | tr -d "\n\t" > new_file

  不可见字符都得用转义字符来表示的,这个都是统一的。

  6、删除“连续着的”重复字母,只保留第一个

  # cat file | tr -s [a-zA-Z] > new_file

  7、删除空行

  # cat file | tr -s "\n" > new_file

  8、删除Windows文件“造成”的'^M'字符

  # cat file | tr -d "\r" > new_file

  或者

  # cat file | tr -s "\r" "\n" > new_file

  【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者

  9、用空格符0替换制表符 class="main">

学习啦 > 学习电脑 > 操作系统 > Linux教程 > Linux中的tr命令的详细解释

Linux中的tr命令的详细解释

时间: 佳洲1085 分享

  # cat file | tr -s " class="main">

学习啦 > 学习电脑 > 操作系统 > Linux教程 > Linux中的tr命令的详细解释

Linux中的tr命令的详细解释

时间: 佳洲1085 分享

  10、把路径变量中的冒号":",替换成换行符"\n"

  # echo $PATH | tr -s ":" "\n"

  补充:linux的tr命令关于表达字符串的特殊序列

  表达字符串的特殊序列

  String1 和 String2 变量中所包含的字符串可以使用以下的约定来表示:

  C1-C2

  指定了 C1 所指定的字符和 C2 所指定的字符之间(包括 C1 和 C2)进行整理的字符串。C1 所指定的字符必须整理放在由 C2 所指定的字符之前。

  注:在使用本方法指定子范围时,当前语言环境对结果有重要影响。如果需要用命令来产生与语言环境无关的一致结果,那么应该避免使用子范围。

  [C*Number]

  Number 是一个整数,它指定了由 C 所指定的字符的重复次数。除非其首位数字是 0,否则 Number 一律视为是十进制整数;如果首位数字是 0,那么视为八进制整数。

  [C*]

  用 C 指定的字符填写字符串。该选项只用于包含在 String2 中的字符串末尾,它强制 String2 中的字符串具有与由 String1 变量所指定的字符串一样的字符数。*(星号)后面指定的任何字符都被忽略。

  [ :ClassName: ]

  alnum lower

  alpha print

  blank punct

  cntrl space

  digit upper

  graph xdigit

  除 [:lower:] 和 [:upper:] 转换字符类之外,其他字符类指定的字符都按未指定的顺序放入数组中。由于未定义字符类指定的字符的顺序,仅当目的为将多个字符映射为一个时才使用这些字符。转换字符类除外。

  有关字符类的详细情况,请参阅 ctype 子例程。

  [ =C= ]

  指定所有的字符具有与 C 所指定的字符相同的等价类。

  \Octal

  指定字符,其编码由 Octal 所指定的八进制值表示。Octal 可以是 1 位、2 位 或 3 位八进制整数。空字符可以用 '

学习啦 > 学习电脑 > 操作系统 > Linux教程 > Linux中的tr命令的详细解释

Linux中的tr命令的详细解释

时间: 佳洲1085 分享

Linux中的tr命令的详细解释

  Linux下的tr命令是一个专门用来处理字符的命令,下面由学习啦小编为大家整理了linux下的tr命令的详细解释,希望对大家有帮助!

  Linux中的tr命令的详细解释

  Linux中的tr命令用于转换或删除文件中的字符。

  tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

  语法

  tr [-cdst][--help][--version][第一字符集][第二字符集]

  tr [OPTION]…SET1[SET2]

  参数说明:

  -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换

  -d, --delete:删除指令字符

  -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符

  -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等

  --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,代表你可自订的字符)

  linux的tr命令的具体例子

  1、将文件file中出现的"abc"替换为"xyz"

  # cat file | tr "abc" "xyz" > new_file

  【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。

  2、使用tr命令“统一”字母大小写

  (小写 --> 大写)

  # cat file | tr [a-z] [A-Z] > new_file

  (大写 --> 小写)

  # cat file | tr [A-Z] [a-z] > new_file

  3、把文件中的数字0-9替换为a-j

  # cat file | tr [0-9] [a-j] > new_file

  4、删除文件file中出现的"Snail"字符

  # cat file | tr -d "Snail" > new_file

  【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。

  5、删除文件file中出现的换行'\n'、制表'\t'字符

  # cat file | tr -d "\n\t" > new_file

  不可见字符都得用转义字符来表示的,这个都是统一的。

  6、删除“连续着的”重复字母,只保留第一个

  # cat file | tr -s [a-zA-Z] > new_file

  7、删除空行

  # cat file | tr -s "\n" > new_file

  8、删除Windows文件“造成”的'^M'字符

  # cat file | tr -d "\r" > new_file

  或者

  # cat file | tr -s "\r" "\n" > new_file

  【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者

  9、用空格符0替换制表符 class="main">

' 表示,并可以像任何其他的字符那样进行处理。

  \ControlCharacter

  指定与 ControlCharacter 所指定的值相应的控制字符。可以表示以下值:

  \a 警告

  \b 退格键

  \f 换页

  \n 换行

  \r 回车

  \t 制表键

  \v 垂直制表键

  \

  规定 "\"(反斜杠)就是作反斜杠使用,而无作为转义字符的任何特殊意义。

  \[

  指定“[”(左括号)就作为左括号使用,而无作为特定字符串序列的开始字符的任何特殊意义。

  \-

  指定“-”(负号)就作为负号使用,而无作为范围分隔符的任何特殊意义。

  如果某个字符在 String1 中被指定过多次,那么该字符就被转换成 String2 中为与 String1 中最后出现的字符相对应的字符。

  如果由 String1 和 String2 指定的字符串长度不相同,那么 tr 命令就会忽略较长一个字符串中的多余字符。

3636552