常用unix命令用法 - cut和paste

指令名称:cut
功能介绍:分割出指定文本文件里符合要求的内容

语法格式:cut -c num1-num2 -f m-n filename
常用参数说明:
-c num1-num2 表示显示每一行的第m个字元到第n个字元;
-f m-n 表示显示第m栏和第n栏(使用tab分隔)。

指令使用实例:
1.打印文本example开头算起前6个字元:
     $ cut -c 0-6 example
 
 cat example
test2
this is test1
shell>> cut -c0-6 example ## print 开头算起前 6 个字元
test2
this   i

2.一个文本file内容为:
   ---------file-----------
  liubi 23 14000
  ---------file-----------
   显示第1栏和第3栏:
     # cut -f 1,3 file
  liubi 14000
cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。

cut一般格式为:
cut [options] file1 file2
下面介绍其可用选项:
-c list 指定剪切字符数。
-f field 指定剪切域数。
-d 指定与空格和tab键不同的域分隔符。
-c 用来指定剪切范围,如下所示:
        -c1,5-7 剪切第1个字符,然后是第5到第7个字符。
        -c1-50 剪切前50个字符。
-f 格式与-c相同。
        -f1,5 剪切第1域,第5域。
        -f1,10-12 剪切第1域,第10域到第12域。


例子:
wangnc> pg pers
P.Jones:Office Runner:ID897
S.Round:UNIX admin:ID666
L.Clip:Personl Chief:ID982


文件中使用冒号“:”为域分隔符,故可用- d选项指定冒号,如-d:。如果有意观察第3域,可以使用-f3。要抽取ID域。可使用命令如下:
wangnc> cut -d: -f3 pers
ID897
ID666
ID982


cut命令中剪切各域需用逗号分隔,如剪切域1和3,即名字和ID号,可以使用:
wangnc> cut -d: -f1,3 pers
P.Jones:ID897
S.Round:ID666
L.Clip:ID982

使用-c选项指定精确剪切数目。这种方法需确切知道开始及结束字符。通常我不用这种方法,除非在固定长度的域或文件名上。
who -u | cut -c1-8

 

cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。
粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。
paste格式为:
paste -d -s -file1 file2
选项含义如下:
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。
-s 将每个文件合并成行而不是按行粘贴。
- 使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。


例子:
wangnc> pg pas1
ID897
ID666
ID982
wangnc> pg pas2
P.Jones
S.Round
L.Clip


基本paste命令将pas1和pas2两文件粘贴成两列:
wangnc> paste pas1 pas2
ID897   P.Jones
ID666   S.Round
ID982   L.Clip


通过交换文件名即可指定哪一列先粘:
wangnc> paste pas2 pas1
P.Jones ID897
S.Round ID666
L.Clip ID982


要创建不同于空格或tab键的域分隔符,使用-d选项。下面的例子用冒号做域分隔符。
wangnc> paste -d: pas2 pas1
P.Jones:ID897
S.Round:ID666
L.Clip:ID982


要合并两行,而不是按行粘贴,可以使用-s选项。下面的例子中,第一行粘贴为名字,第二行是ID号。
wangnc> paste -s pas1 pas2
ID897   ID666   ID982
P.Jones S.Round L.Clip


paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个4列格式显示目录列表。方法如下:
wangnc> ls /etc | paste -d" " - - - - - -
MANPATH PATH SHLIB_PATH SnmpAgent.d/ TIMEZONE X11/
acct/ aliases@ arp@ audeventstab audomon@ auto_master
auto_parms.log auto_parms.log.old backup@ backup.cfg bcheckrc@ bootpd@
bootpquery@ bootptab btmp@ catman@ checklist@ chroot@
clri@ cmcluster/ cmcluster.conf cmom.conf conf@ convertfs@
copyright cron@ csh.login d.cshrc@ d.exrc@ d.login@

也可以以一列格式显示输出:
wangnc> ls /etc | paste -d"" -
MANPATH
PATH
SHLIB_PATH
SnmpAgent.d/
TIMEZONE
X11/
acct/
aliases@
arp@
audeventstab
audomon@
auto_master
auto_parms.log
auto_parms.log.old
backup@
backup.cfg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值