cut和paste用法

cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件

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

cut一般格式为:

cut [options] file1 file2

下面介绍其可用参数

-c list  指定剪切字符数

-f field  指定剪切域数

-d 指定与空格和tab键不同的域分割符

-c  用来指定剪切范围,如下所示:

-c1-50   剪切前50个字符

-c1,5-7  剪切第1个字符,然后是5到第7个字符

-f 格式与-c相同

-f 1,5  剪切第1域,第5域

-f1,10-12  剪切第1域,第10域到第12域

设有pers文件 $pg pers

P.Jones:Office Runner:ID897
Round:UNIX admin:ID666
Clip:Personal Chief:ID982

抽取pers的第3域

$cut -d: -f3 pers

抽取pers的第1和第3域

$cut -d: f1,3 pers

获取/etc/passwd中注册名和根目录,可抽取其域1和域6

$cut -d: -f1,6 /etc/passwd

root:/root
daemon:/usr/sbin
bin:/bin
sys:/dev
sync:/bin
games:/usr/games
man:/var/cache/man
lp:/var/spool/lpd
mail:/var/mail
news:/var/spool/news
uucp:/var/spool/uucp
proxy:/bin
www-data:/var/www
backup:/var/backups
list:/var/list
irc:/var/run/ircd
gnats:/var/lib/gnats
nobody:/nonexistent
libuuid:/var/lib/libuuid
syslog:/home/syslog
messagebus:/var/run/dbus
avahi-autoipd:/var/lib/avahi-autoipd
avahi:/var/run/avahi-daemon
couchdb:/var/lib/couchdb
usbmux:/home/usbmux
speech-dispatcher:/var/run/speech-dispatcher
kernoops:/
pulse:/var/run/pulse
rtkit:/proc
saned:/home/saned
hplip:/var/run/hplip
gdm:/var/lib/gdm
dongjichao:/home/dongjichao
haldaemon:/var/run/hald
festival:/home/festival
mldonkey:/var/lib/mldonkey

获取系统用户信息

$who -u | cut -c1-8

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

paste用法

      paste将按行对不同文件行信息放在一起。缺省情况下,paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将

成为域分隔符

      paste格式为:

      paste -d -s -file1 file2

      选项含义如下:

      -d   指定不同于空格或tab键的域分隔符。例如使用@分隔符,使用-d@

     例如有两个文件

     $cat pas1

      ID897
      ID666
      ID982

    $cat pas2
    P.Jones
    S.Round
    L.Clip

    $paste pas1 pas2结果为

    ID897    P.Jones
    ID666    S.Round
    ID982    L.Clip

    $paste pas2 pas1结果为

    P.Jones    ID897
    S.Round    ID666
    L.Clip    ID982

    $paste -d:  pas2 pas1

    P.Jones:ID897
    S.Round:ID666
    L.Clip:ID982


    要合并两行,而不是按行粘贴,可用-s选项

    $paste -s pas2 pas1

    P.Jones    S.Round    L.Clip
    ID897    ID666    ID982

    paste命令管道输入

    $ls | paste -d " " - - - -        #表示每行4个目录,并且用空格分开

     append.sed array1.sh change.sed data.f
     delete_me_and_die forfind.sh forparam2.sh getip2.sh
     grade.txt insert.sed lib log.txt
     mustpreset2.sh mustpreset.sh myfile.txt myoutfile
     names.txt parts.txt pas1 pas2
     pers poz2.sh prime.sh quote.txt
     results.out unset1.sh video.txt whileread.sh 
     $ls | paste -d " " -    #每行显示一个目录列表

     append.sed
     array1.sh
     change.sed
     data.f
     delete_me_and_die
     forfind.sh

      .........
       

ID897
ID666
ID982

你可能感兴趣的:(cut和paste用法)