cut、tee、split、xargs、bc命令

http://sss721.blog.163.com/blog/static/10170119200992811123802/

一、cut命令

cut 主要的用途在于将一行里面的数据进行分解,最常使用在分析一些数据或文字数据的时候!这是因为有时候我们会以某些字符当作分割的参数,然后来将数据加以切割,以取得我们所需要的数据。

? 命令格式:

  cut -d "分隔字符" [-cf] fields

  -d :后面接的是用来分隔的字符,默认是空格符

  -c :后面接的是第几个字符

  -f :后面接的是第几个区块(列)?

  cat /etc/passwd | cut -d ":" -f 1

  last | cut -d “ ” -f1 //以空格符为分隔,并列出第一列

  last | cut -c1-20 //将 last 之后的数据,每一行的 1-20 个

  字符取出来

二、tee命令

   将数据输出重定向到文件的时候,屏幕上就不会出现任何的数据!那么如果我们需要将数据同时显示在屏幕上跟档案中呢?这个时候就需要 tee 这个指令。

    last | tee last.list | cut -d " " -f1

三、split命令

    将大的文件分割成小的文件

    -b size 来将一个分割的文件限制其大小

    -l line以行数来分割

    split -l 5 /etc/passwd test <==会产生testaa, testab, testac... 等等的小文件

dd if=/dev/zero bs=1000k count=10 of =1.date

split -b 1000000 1.dat abc

四、xargs

    xargs从标准输入中接受单词列表的命令,并把 这些单词作为参数传递给指定的命令

    ls |xargs rm//把ls列出的内容再通过rm删除可以每次删除一部分文件

    ls |xargs –n 2 rm

    ls | xargs –n 2 echo “==>”

    有时目录里文件太多了不能使用rm *删除这时

    ls | grep ‘^abc’ |xargs –n 20 rm

   

    ls abcd*|xargs -i cp {} /tmp

五、bc命令

    bc命令:进行算术运算,但不限于整数运算

    $bs

    scale=4 //表示计算结果保留4位小数

  2+3

  2-3

  2*3

  8/3

  quit

    bc还可以用在shell变量赋值中

  ABC=`echo “scale=4;8/3” | bc`

  echo $ABC

====================================

shell字符串操作:

前景色:30 黑色 31红色  32绿色  33黄色  34蓝色  35紫红  36青色  37白色

背景色:40          41         42         43         44         45         46         47

echo -e "\033[32;40m"ok "\033[0m"

#!/bin/bash

a="**********************************************"

for i in {30..37}

do

        for n in {40..47}

        do

        echo -e "\033[$i;${n}m"$a"\033[0m"

done

done

----------------------------------

[root@localhost ~]# path=$PATH

[root@localhost ~]# echo $path

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# echo ${path#/*kerberos} <---1个#是最小匹配从前向后删除

/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# echo ${path##/*kerberos} <---2个#是最大匹配从前向后删除

/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# echo ${MAIL%r*}<------%是从后向前删除

/var/spool/mail/

[root@localhost ~]# echo ${MAIL%%r*}<----%%是最大匹配

/va

[root@localhost ~]# echo ${#MAIL}<----统计变量字符长度

20

统计字符小于30的行就添加一个空行

#!/bin/bash

while read line

do

        a=${#line}

        echo $line

        if [ $a -lt 30 ];then

                echo

        fi

done < $1

~          

 echo ${path/bin/BIN}<-----把第1个bin替换成BIN

/usr/kerberos/sBIN:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

echo ${path//bin/BIN}<-----加2个//表示全部替换

/usr/kerberos/sBIN:/usr/kerberos/BIN:/usr/local/sBIN:/usr/local/BIN:/sBIN:/BIN:/usr/sBIN:/usr/BIN:/usr/X11R6/BIN:/root/BIN

echo ${abc//[0-9]/}

判断输入的是数字还是字符串

    #!/bin/bash

    read -p "please input:" a

    b=${a//[0-9]/}

    if [ -z $b ];then

        echo "your input is number!"

    fi

var=${str:-newvar} 当str是空的时候 var=newvar ,str不为空的时候var=$str

var=${str:=newvar} 当str是空的时候 var=newvar str=newvar ,str不为空的时候var=$str

创建文件如果不输入文件名则默认创建abc这个文件。

#!/bin/bash

read -p " please create file [abc] :" f

 a=${f:-abc}

cd /tmp

touch $a

-------

#!/bin/bash

read -p " please create file [abc] :" f

 a=${f:-abc}

 b=`date --date="1 days ago" +%F`

 c=`date --date="2 days ago" +%F`

 d=`date +%F`

cd /tmp

touch $a.{$b,$c,$d}

备份/root目录下的 sh文件到/tmp/backup用时间创建文件夹 再次备份时比较文件更新时间,比上一次新的才备份

#!/bin/bash

a=/tmp/backup/`date +%F.%H:%M`

cd /root

if [ ! -e $a ];then

        mkdir -p $a

fi

for i in `find *.sh`

 do

         find /tmp/backup -newer $i | grep -q $i

        if [ $? -ne 0 ];then

        cp $i $a/$i

        fi

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值