locale及tr命令(补充)

一.locale命令

1.有时候在命令行输入命令后会显示乱码状态,也可能时间会显示乱码,这是因为语系的不同而产生的乱码,这时就需要更改相对应的语系。

2.比如查询日期:
1)中文语系:

[root@kasumi ~]# date 
2019年 05月 07日 星期二 19:41:54 CST

2)英文语系:

[root@kasumi ~]# date
Tue May  7 19:30:20 CST 2019

3.列出现在可用的语系:

[root@kasumi ~]# locale
LANG=zh_CN.UTF8
LC_CTYPE="zh_CN.UTF8"
LC_NUMERIC="zh_CN.UTF8"
LC_TIME="zh_CN.UTF8"
LC_COLLATE="zh_CN.UTF8"
LC_MONETARY="zh_CN.UTF8"
LC_MESSAGES="zh_CN.UTF8"
LC_PAPER="zh_CN.UTF8"
LC_NAME="zh_CN.UTF8"
LC_ADDRESS="zh_CN.UTF8"
LC_TELEPHONE="zh_CN.UTF8"
LC_MEASUREMENT="zh_CN.UTF8"
LC_IDENTIFICATION="zh_CN.UTF8"
LC_ALL=

ps:基本上可以逐一设定每个与语系有关的变量数据,但是如果其他变量都未设定,但有设定LANG或者LC_ALL时,其他语系变量就会被这两个变量所取代。

4.centos7系统默认的语系在/etc/locale.conf:

[root@kasumi ~]# vim /etc/locale.conf 

  1 LANG="zh_CN.UTF-8"  只需要在此处更改即可
~                       

5.仅暂时更改语系可通过设定环境变量实现:

[root@kasumi ~]# echo $LANG
zh_CN.UTF8   当前语系
[root@kasumi ~]# export LANG=en_US.UTF8  更改语系环境变量
[root@kasumi ~]# echo $LANG
en_US.UTF8
[root@kasumi ~]# date
Tue May  7 19:49:52 CST 2019

6.也可以在/etc/profile.d/*.sh创建一个开机会自动读取的环境变量;

[root@kasumi ~]# cat /etc/profile.d/lang1.sh
#!/bin/bash

declare -x LANG=en_US.UTF8

ps:此时开机也会自动更改语系环境变量

二.tr命令

1.语法及选项

1.tr命令可以对来自标准输入的字符进行替换,压缩和删除。它可以将一组字符变成另一组字符,可用来实现优美的单行命令,功能很强大。

2.语法:tr(选项)(参数)
1)-c或——complerment:取代所有不属于第一字符集的字符
2)-d或——delete:删除所有属于第一字符集的字符
3)-s或–squeeze-repeats:把连续重复的字符以单独一个字符表示
4)-t或–truncate-set1:先删除第一字符集较第二字符集多出的字符
5)字符集1:指定要转换或删除的原字符集。除了执行删除操作,执行其余转换操作时,必须使用字符集2指定转换的目标字符。
6)字符集2:指定要转换成的目标字符集。

2.tr练习

1.将字符由小写转换为小写:

[root@kasumi ~]# echo “hello,kasumi” | tr [a-z] [A-Z]
“HELLO,KASUMI”

ps:集合也可以自己制定,比如:‘a-c0-9’,‘a-de-h’,集合里也可以使用\n’、’\t’,也可以使用其他ASCII字符。

2.使用tr删除字符:

[root@kasumi ~]# echo “hello 516 kasumi” | tr -d [0-9]
“hello  kasumi”

3.将制表符转换为空格:cat test | tr '\t' ' '

4.字符集补集,从文本中将不在范围内的字符删除:

echo "a b y*y kk 1 3 45 ii" | tr -d -c '[0-9] \n'
    1 3 45 

ps:除了数字及换行符和空格都被删除

5.使用tr压缩字符,可压缩输入中重复的字符:

[root@kasumi ~]# echo "ksuuuuuuuuuumi  yukkkki" | tr -s 'uk'
ksumi  yuki

6.-t选项替换字符:

[root@kasumi ~]# echo "1 2 3 4 5" | tr -t '1-4' 'abc' 
a b c 4 5

7.利用tr做数字运算:

[root@kasumi ~]# echo "1 2 3 4 5 6" | xargs -n1 | echo $[ $(tr '\n' '+')+0]
21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值