Linux/Unix tr、变量、运算以及终端特性的设置等
使用tr的-s选项去除重复出现的字符:
[oracle@localhost tr.folder]$ cat oops.txt
And the cowwwwwws went homeeeee
Or did theyyyyyyyyyyyyy
[oracle@localhost tr.folder]$ tr -s "[a-z]" < oops.txt
And the cows went home
Or did they
删除空行:
[oracle@localhost tr.folder]$ cat oops.txt
And the cowwwwwws went homeeeee
Or did theyyyyyyyyyyyyy
fas ods css
[oracle@localhost tr.folder]$ tr -s "[\012]" < oops.txt
And the cowwwwwws went homeeeee
Or did theyyyyyyyyyyyyy
fas ods css
转换大小写:
[oracle@localhost tr.folder]$ echo "hello today is a Fine DAY" | tr "[a-z]" "[A-Z]"
HELLO TODAY IS A FINE DAY
删除数字:
[oracle@localhost tr.folder]$ cat oops.txt
And the cowwwwwws went homeeeee
23
3123asadfas
123ffff
Or did theyyyyyyyyyyyyy
12
fas ods css
[oracle@localhost tr.folder]$ tr -cs "[a-z][A-Z]" "[\012*]" < oops.txt
And
the
cowwwwwws
went
homeeeee
asadfas
ffff
Or
did
theyyyyyyyyyyyyy
fas
ods
css
[oracle@localhost etc]$ echo "`who | wc -l` users are on today"
2 users are on today
查看当前终端特性:
[oracle@localhost testDir]$ stty -a
speed 38400 baud; rows 44; columns 167; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
设置styy xxx "xxx"
设置变量的默认值:
[oracle@localhost testDir]$ day=bad
[oracle@localhost testDir]$ echo "today is a ${day:-fine} day"
today is a bad day
[oracle@localhost testDir]$ unset day
[oracle@localhost testDir]$ echo "today is a ${day:-fine} day"
today is a fine day
设置只读变量:
[oracle@localhost testDir]$ readonly
declare -ar BASH_VERSINFO='([0]="3" [1]="1" [2]="17" [3]="1" [4]="release" [5]="i686-redhat-linux-gnu")'
dec