常用Shell操作符

<1>规则表达式

 

规则表达式       描述
/./                   将与包含至少一个字符的任何行匹配
/../                  将与包含至少两个字符的任何行匹配
/^#/               将与以 '#' 开始的任何行匹配
/^$/               将与所有空行匹配
/}^/               将与以 '}'(无空格)结束的任何行匹配
/} *^/            将与以 '}' 后面跟有 零或多个空格结束的任何行匹配
/[abc]/           将与包含小写 'a'、'b' 或 'c' 的任何行匹配
/^[abc]/         将与以 'a'、'b' 或 'c' 开始的任何行匹配

 

 

<2>sed 字符类

字符类       描述
[:alnum:]    字母数字 [a-z A-Z 0-9]
[:alpha:]    字母 [a-z A-Z]
[:blank:]    空格或制表键
[:cntrl:]    任何控制字符
[:digit:]    数字 [0-9]
[:graph:]    任何可视字符(无空格)
[:lower:]    小写 [a-z]
[:print:]    非控制字符
[:punct:]    标点字符
[:space:]    空格
[:upper:]    大写 [A-Z]
[:xdigit:]    十六进制数字 [0-9 a-f A-F]

 

 

 

<3>bash 操作符

http://tldp.org/LDP/abs/html/comparison-ops.html

integer comparison

-eq, is equal to
-ne, is not equal to
-gt, is greater than
-ge, is greater than or equal to
-lt, is less than

-le, is less than or equal to
<, is less than (within double parentheses)
<=, is less than or equal to (within double parentheses)
>, is greater than (within double parentheses)
>=, is greater than or equal to (within double parentheses)

compound comparison
-a, logical and
-o, logical or


string comparison
=, is equal to
==, is equal to
    Note:
    The == comparison operator behaves differently within a double-brackets test than within single brackets.

    [[ $a == z* ]]   # True if $a starts with an "z" (regex pattern matching).
    [[ $a == "z*" ]] # True if $a is equal to z* (literal matching).

    [ $a == z* ]     # File globbing and word splitting take place.
    [ "$a" == "z*" ] # True if $a is equal to z* (literal matching).

!=, is not equal to
    This operator uses pattern matching within a [[ ... ]] construct.
<, is less than, in ASCII alphabetical order
    if [[ "$a" < "$b" ]]
    if [ "$a" /< "$b" ]
    Note that the "<" needs to be escaped within a [ ] construct.
>, is greater than, in ASCII alphabetical order
    if [[ "$a" > "$b" ]]
    if [ "$a" /> "$b" ]
    Note that the ">" needs to be escaped within a [ ] construct.
-z, string is null, that is, has zero length
-n, string is not null.
    Caution:
    The -n test requires that the string be quoted within the test brackets. Using an unquoted string with ! -z, or even just the unquoted string alone within test brackets (see Example 7-6) normally works, however, this is an unsafe practice. Always quote a tested string. [1]

 

 

<3>bash 条件表达式

Conditional expressions are used by the [[ compound command and the test and [ builtin commands.

Expressions may be unary or binary. Unary expressions are often used to examine the status of a file. There are string operators and numeric comparison operators as well. If the file argument to one of the primaries is of the form `/dev/fd/N', then file descriptor N is checked. If the file argument to one of the primaries is one of `/dev/stdin', `/dev/stdout', or `/dev/stderr', file descriptor 0, 1, or 2, respectively, is checked.


-a file
    True if file exists.
-b file
    True if file exists and is a block special file.
-c file
    True if file exists and is a character special file.
-d file
    True if file exists and is a directory.
-e file
    True if file exists.
-f file
    True if file exists and is a regular file.
-g file
    True if file exists and its set-group-id bit is set.
-h file
    True if file exists and is a symbolic link.
-k file
    True if file exists and its "sticky" bit is set.
-p file
    True if file exists and is a named pipe (FIFO).
-r file
    True if file exists and is readable.
-s file
    True if file exists and has a size greater than zero.
-t fd
    True if file descriptor fd is open and refers to a terminal.
-u file
    True if file exists and its set-user-id bit is set.
-w file
    True if file exists and is writable.
-x file
    True if file exists and is executable.
-O file
    True if file exists and is owned by the effective user id.
-G file
    True if file exists and is owned by the effective group id.
-L file
    True if file exists and is a symbolic link.
-S file
    True if file exists and is a socket.
-N file
    True if file exists and has been modified since it was last read.
file1 -nt file2
    True if file1 is newer (according to modification date) than file2.
file1 -ot file2
    True if file1 is older than file2.
file1 -ef file2
    True if file1 and file2 have the same device and inode numbers.
-o optname
    True if shell option optname is enabled. The list of options appears in the description of the `-o' option to the set builtin (see section 4.3 The Set Builtin).
-z string
    True if the length of string is zero.
-n string
string
    True if the length of string is non-zero.
string1 == string2
    True if the strings are equal. `=' may be used in place of `=='.
string1 != string2
    True if the strings are not equal.
string1 < string2
    True if string1 sorts before string2 lexicographically in the current locale.
string1 > string2
    True if string1 sorts after string2 lexicographically in the current locale.

arg1 OP arg2
    OP is one of `-eq', `-ne', `-lt', `-le', `-gt', or `-ge'. These arithmetic binary operators return true if arg1 is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to arg2, respectively. Arg1 and arg2 may be positive or negative integers.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值