tr:
转换或者删除字符, 要特别注意是按字符处理不是字符串
语法格式:
tr [OPTION]... SET1 [SET2]
参数说明:
-s, --squeeze-repeats 把连续重复的字符以单独一个字符表示;
替换字符, 当参数SET2存在时(同时也去掉重复)
-d, --delete 删除所有属于第一字符集的字符
-t, --truncate-set1 将set1的字符依次替换成set2中的字符, 如果 \
set1中的字符数目超过set2, 那么set1多出的 \
字符忽略. 如果没有-t, 那么多出的字符都替 \
换成set2的最后一个字符.
-c 用SET2最后的字符替换SET1补集内的字符
说明: 在vim中可以直接使用tr命令。使用示例如下: 1,$!tr -s ":' ","。 \
其中1,$表示的是范围:从第1行到最后一行;!表示在vim中执行命令
tr中特定控制字符的不同表达方式:
\a Ctrl-G 铃声\007
\b Ctrl-H 退格符\010
\f Ctrl-L 换页符\014
\n Ctrl-J 新行\012
\r Ctrl-M 回车\015
\t Ctrl-I tab键\011
\v Ctrl-X \030
字符范围:
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
示例:
tr -cs "[^a-z][^A-Z]" "\012" < a.txt
把所有非英语字母替换为换行符, 然后再压缩空行.
tr -s "csf" "lxy" < a.txt
把csf替换成lxy
tr -s "csf" < a.txt
tr -s "[a-z]" < a.txt
第一个把重复的c,s和f压缩成一个c,s和f; t第二个把重复的小写字母压缩成一个
tr -d "csflxy < a.txt
删除c,s, f, l, x, y字符
转换或者删除字符, 要特别注意是按字符处理不是字符串
语法格式:
tr [OPTION]... SET1 [SET2]
参数说明:
-s, --squeeze-repeats 把连续重复的字符以单独一个字符表示;
替换字符, 当参数SET2存在时(同时也去掉重复)
-d, --delete 删除所有属于第一字符集的字符
-t, --truncate-set1 将set1的字符依次替换成set2中的字符, 如果 \
set1中的字符数目超过set2, 那么set1多出的 \
字符忽略. 如果没有-t, 那么多出的字符都替 \
换成set2的最后一个字符.
-c 用SET2最后的字符替换SET1补集内的字符
说明: 在vim中可以直接使用tr命令。使用示例如下: 1,$!tr -s ":' ","。 \
其中1,$表示的是范围:从第1行到最后一行;!表示在vim中执行命令
tr中特定控制字符的不同表达方式:
\a Ctrl-G 铃声\007
\b Ctrl-H 退格符\010
\f Ctrl-L 换页符\014
\n Ctrl-J 新行\012
\r Ctrl-M 回车\015
\t Ctrl-I tab键\011
\v Ctrl-X \030
字符范围:
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
示例:
tr -cs "[^a-z][^A-Z]" "\012" < a.txt
把所有非英语字母替换为换行符, 然后再压缩空行.
tr -s "csf" "lxy" < a.txt
把csf替换成lxy
tr -s "csf" < a.txt
tr -s "[a-z]" < a.txt
第一个把重复的c,s和f压缩成一个c,s和f; t第二个把重复的小写字母压缩成一个
tr -d "csflxy < a.txt
删除c,s, f, l, x, y字符