收集的shell用法

来源:互联网 发布:郑州市经开区地产数据 编辑:程序博客网 时间:2024/05/16 15:29

(1)grep -F的用法

grep -F指定grep命令按照字符串匹配方式工作,若没有使用-F参数,grep命令按照正则表达式匹配方式工作。

例:$cat a

        1

        2

        [1-3]a

        $grep [1-3] a

        1

        2

        [1-3]a

        $grep -F [1-3] a

        [1-3]a


(2)去除文本中的重复行

例:$cat test

        kkk

        aaa

        abc

        kkk

        aaa

        ddd

        $awk '!a[$0]++' test

        kkk

        aaa

        abc

        ddd       

(3)tr命令用法

语法:tr [ options ] source-char-list replace-char-list

用途:转换字符或删除字符,也可使用sed命令实现。若不使用选项,会将source-char-list中的字符替换成replace-char-list中相应的字符。

常用选项:

-c : 取source-char-list的补集替换source-char-list,通常与-d和-s配合使用。

-d : 删除source-char-list中的字符,而不是替换它们。

-s : 去除重复的字符,如果输入中连续重复出现source-char-list里所列的字符,则将其浓缩成一个。

字符范围 :

[a-z] a-z内的字符组成的字符串。 

[A-Z] A-Z内的字符组成的字符串。 

[0-9] 数字串。 

\octal 一个三位的八进制数,对应有效的ASCII字符。 

[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。 

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 

例1:大写字母替换成小写字母

$cat a.txt | tr "[A-Z]" "[a-z]"

例2:去除多余的空行

$cat a.txt | tr -s "[\012]"

$cat a.txt | tr -s "[\n]"

例3:删除数字

$tr -d "[0-9]"

例4:将非字母替换成星号

$tr -c "[A-Z][a-z]" "*"

(4)数组长度:数组元素个数${#array[@]},数组的所有元素${array[*]},单个数组元素的长度 ${#array[i]},字符串长度${#str}

1、获取数组元素的个数:

        array=(bill   chen  bai   hu);

        num=${#array[@]}                          //获取数组元素的个数。

       遍历数组就变成非常简单的事情:

       for ((i=0;i<num;i++))

       {

                         echo   $array[i];

       }

       获取数组某一个单元的长度就变成了:

       ${#array[i]} 

2、获取数组的所有元素:

      ${array[*]}

     遍历数组就编程了非常简单的事情:

     for var in  ${array[*]}

     do

                  echo $var;

     done

     获取数组某一个单元的长度就变成了:

     ${#var[i]} 

3、获取字符串的长度:

       str="hello"

       len=${#str}


0 0
原创粉丝点击