【shell】shell之cut用法|剪切列或域|提取列或域
目录
即可即用
提取列的用awk命令更好用
示例1:截取pers文件内冒号分隔的字符串的第3列
命令:
命令说明:
- d:使用冒号”:“作为域分隔符
-f 3:取分隔后的第3列,
示例2:取括号内的数值 ”you age is (19)year"
echo "you age is (19)year"|cut -d '(' -f 2 |cut -d ')' -f 1
cut -d '(' -f 2 :"you age is (19)year"以 '(' 作为分隔符,取第二列。既:“19)year”
cut -d ')' -f 1:“19)year”以 ')' 作为分隔符,取第1列。既:“19”
命令详细说明
提取域的可以参考cut:
cut用来从标准输入或文本文件中剪切列或域。
cut一般格式为:
cut [options] file1 file2
下面介绍其可用选项:
-c list 指定剪切字符数。
-f field 指定剪切域数。
-d 指定与空格和t a b键不同的域分隔符。
- c用来指定剪切范围,如下所示:
- c 1,5-7 剪切第1个字符,然后是第 5到第7个字符。
-c1-50 剪切前5 0个字符。
-f 格式与- c相同。
-f 1 ,5 剪切 第1域,第5域。
- f 1,10-12 剪切第1域,第1 0域到第1 2域。
参照上一节中的文件‘ p e r s’ ,现在从' p e r s '文件中剪切文本。使用冒号做其域分隔符。
使用域分隔符
文件中使用冒号“: ”为域分隔符,故可用 - d选项指定冒号,如 - d: 。如果有意观察第 3域,
可以使用- f 3 。要抽取I D域。可使用命令如下:
剪切指定域
cut命令中剪切多个域需用逗号分隔,如剪切域 1和3,即名字和 I D 号,可以使用:
要从文件/ e t c / p a s s w d中剪切注册名及缺省根目录,需抽取域 1和域6:
使用- c选项指定精确剪切数目。这种方法需确切知道开始及结束字符。通常我不用这种方
法,除非在固定长度的域或文件名上。
当信息文件传送到本机时,查看部分文件名就可以识别文件来源。要得到这条信息需抽
取文件名后三个字符。然后才决定将之存在哪个目录下。下面的例子显示文件名列表及相应
c u t命令:
如果使用ls -l 命令作部分输出,情况将不同。需使用 - c选项。
要剪切字符,须计算 ls -l 列表中的字符数。如显示权限用 cut -c1-10 。然而这种方法可能
相当慢,因此需要使用其他工具将相应信息抽取出来。要剪切谁正在使用系统的用户信息,
方法如下: