千万个美丽的未来,抵不上一个温暖的现在,每一个真实的现在,都是我们曾经幻想的未来!
Jan
14
一、BC
[root@838271 ~]# echo "0.14 > 0.15" | bc
0
[root@838271 ~]# echo "0.14 < 0.15" | bc
1
[root@838271 ~]# echo "0.14 = 0.15" | bc
(standard_in) 1: syntax error
[root@838271 ~]# echo "0.14 == 0.15" | bc
0
[root@838271 ~]# echo "0.14 == 0.14" | bc
1
[root@838271 ~]# echo "0.14 >= 0.14" | bc
1
[root@838271 ~]# echo "0.14 > 0.14" | bc
0
然後參考:
a=1.6
b=6.1
c=`echo "$a > $b" | bc`
然後,如果 $c 是 1 ,那就成立,否則不成立。
二、expr
[root@838271 ~]# expr 0.14 \> 0.15
0
[root@838271 ~]# expr 0.14 \< 0.15
1
[root@838271 ~]# expr 0.14 \= 0.15
0
[root@838271 ~]# expr 0.14 \== 0.15
0
[root@838271 ~]# expr 0.14 \== 0.14
1
[root@838271 ~]# expr 0.14 \>= 0.14
1
[root@838271 ~]# expr 0.14 \> 0.14
0
三、AWK
awk -v a=7.9 -v b=11.5 'BEGIN{print(a>b)?"a":"b"}'
[root@838271 ~]# echo "0.14 > 0.15" | bc
0
[root@838271 ~]# echo "0.14 < 0.15" | bc
1
[root@838271 ~]# echo "0.14 = 0.15" | bc
(standard_in) 1: syntax error
[root@838271 ~]# echo "0.14 == 0.15" | bc
0
[root@838271 ~]# echo "0.14 == 0.14" | bc
1
[root@838271 ~]# echo "0.14 >= 0.14" | bc
1
[root@838271 ~]# echo "0.14 > 0.14" | bc
0
然後參考:
a=1.6
b=6.1
c=`echo "$a > $b" | bc`
然後,如果 $c 是 1 ,那就成立,否則不成立。
二、expr
[root@838271 ~]# expr 0.14 \> 0.15
0
[root@838271 ~]# expr 0.14 \< 0.15
1
[root@838271 ~]# expr 0.14 \= 0.15
0
[root@838271 ~]# expr 0.14 \== 0.15
0
[root@838271 ~]# expr 0.14 \== 0.14
1
[root@838271 ~]# expr 0.14 \>= 0.14
1
[root@838271 ~]# expr 0.14 \> 0.14
0
三、AWK
awk -v a=7.9 -v b=11.5 'BEGIN{print(a>b)?"a":"b"}'
Mar
29
awk '!a[$0]++' filename
如文件 1.txt 的内容为:
[root@pp crontab]# cat 1.txt
abcd
abcd
bacd
bacd
dcba
dcba
执行 awk '!a[$0]++' 1.txt 看看输出:
[root@pp crontab]# awk '!a[$0]++' 1.txt
abcd
bacd
dcba
看看是不是没有重复的行了,是不是很简单。
如文件 1.txt 的内容为:
[root@pp crontab]# cat 1.txt
abcd
abcd
bacd
bacd
dcba
dcba
执行 awk '!a[$0]++' 1.txt 看看输出:
[root@pp crontab]# awk '!a[$0]++' 1.txt
abcd
bacd
dcba
看看是不是没有重复的行了,是不是很简单。
Apr
5
sort命令,参数-u去掉结果中得重复行,-t,改变分割符,-n根据数字大小排序,-k制定排序的域.如: sort -t: -k3n GARGO.db #根据第三域的数字大小排序
sort -t: -k3nr GARGO.db #根据第三域的数字大小排序,将排序结果逆向显示
uniq命令 -c打印每行在文本中重复出现的次数,-d只显示重复记录,每个重复记录只出现一次,-u只显示没有重复的记录。uniq去除的重复行必须是连续的重复行,中间没有夹杂任何文本。
join命令,文本记录的连接,如:join -t: -o1.1 2.1 2.2 -1 3 -2 1 text1 text2用第一个文本的第三个域连接第二个文本的第一个域,并显示第一个文本第一个域,第二个文本第一个域和第二个域,分隔符为:
测试:
test expression
或者 [ expression ]
用$?判断推出状态,若为0表示命令运行成功
num1 -eq num2 如果num1等于num2,测试结果为0
num1 -ge num2 如果num1大于等于num2,测试结果为0
还有(-gt 大于,-le小于等于,-lt小于,-ne不等于) 、
string测试字符串是否不为空
-n string测试字符串是否不为空
-z string测试字符串是否为空
文本操作符
-d file测试file是否为目录
-e file测试file是否存在
-f file测试file是否为普通文件
-r file测试file是否进程可读
-s file测试长度是否不为0
-x file可执行,-w file可写 -L file符号化链接
逻辑运算符:
!expression如果expression为假,则测试结果为真
expression1 -a expression2 同时为真,则测试结果为真
expression1 -o expression2 有一个为真,则测试结果为真
字符串处理:
计算长度${#string}或者expr length $string
expr index $string $substring子串索引
expr match $string $substring 字符串匹配,不配不上返回0
${string:position:length}或者expr substr $string $position $length 抽取字符串(前面坐标0开始,后面从1开始)
${string#substring}删除开头处与substring匹配的最短子串
${string##substring}删除开头处与substring匹配的最长子串
${string%substring}删除结尾处与substring匹配的最短子串
${string%%substring}删除结尾处与substring匹配的最长子串
${string/substring/replacement} 替换第一次与substring匹配的字符串
${string//substring/replacement}替换所有与substring匹配的字符串
awk
awk 'BEGIN {FS=":"} {if($1==2&&$2==2) print $0}' /etc/passwd 用:分割passwd,输出第一个域或者第二个域等于2时的行信息
awk 'BEGIN {FS=","}{print NF,NR,$0} END {print FILENAME}' sturecord #NF当前记录中得域数量,NR当前记录数,FILENAME当前输入文件名。
sort -t: -k3nr GARGO.db #根据第三域的数字大小排序,将排序结果逆向显示
uniq命令 -c打印每行在文本中重复出现的次数,-d只显示重复记录,每个重复记录只出现一次,-u只显示没有重复的记录。uniq去除的重复行必须是连续的重复行,中间没有夹杂任何文本。
join命令,文本记录的连接,如:join -t: -o1.1 2.1 2.2 -1 3 -2 1 text1 text2用第一个文本的第三个域连接第二个文本的第一个域,并显示第一个文本第一个域,第二个文本第一个域和第二个域,分隔符为:
测试:
test expression
或者 [ expression ]
用$?判断推出状态,若为0表示命令运行成功
num1 -eq num2 如果num1等于num2,测试结果为0
num1 -ge num2 如果num1大于等于num2,测试结果为0
还有(-gt 大于,-le小于等于,-lt小于,-ne不等于) 、
string测试字符串是否不为空
-n string测试字符串是否不为空
-z string测试字符串是否为空
文本操作符
-d file测试file是否为目录
-e file测试file是否存在
-f file测试file是否为普通文件
-r file测试file是否进程可读
-s file测试长度是否不为0
-x file可执行,-w file可写 -L file符号化链接
逻辑运算符:
!expression如果expression为假,则测试结果为真
expression1 -a expression2 同时为真,则测试结果为真
expression1 -o expression2 有一个为真,则测试结果为真
字符串处理:
计算长度${#string}或者expr length $string
expr index $string $substring子串索引
expr match $string $substring 字符串匹配,不配不上返回0
${string:position:length}或者expr substr $string $position $length 抽取字符串(前面坐标0开始,后面从1开始)
${string#substring}删除开头处与substring匹配的最短子串
${string##substring}删除开头处与substring匹配的最长子串
${string%substring}删除结尾处与substring匹配的最短子串
${string%%substring}删除结尾处与substring匹配的最长子串
${string/substring/replacement} 替换第一次与substring匹配的字符串
${string//substring/replacement}替换所有与substring匹配的字符串
awk
awk 'BEGIN {FS=":"} {if($1==2&&$2==2) print $0}' /etc/passwd 用:分割passwd,输出第一个域或者第二个域等于2时的行信息
awk 'BEGIN {FS=","}{print NF,NR,$0} END {print FILENAME}' sturecord #NF当前记录中得域数量,NR当前记录数,FILENAME当前输入文件名。