shell文字过滤程序(十):cut命令

shell文字过滤程序(十):cut命令

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

【版权声明:转载请保留源:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】

cut指挥类似至awk,从行内提取的信息,它是一个较弱的版本的功能awk。

cut命令格式为:cut [options] filename

当中options有:

-d  指定与空格和t a b键不同的域分隔符。类似于awk的“-F”。

-f field  指定剪切域数

-c list  指定剪切字符数。

首先我们来处理按:切割的password文件:

# cat passwd
root:x:0:0:root:/root:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
operator:x:37:37:Operator:/var:/bin/sh
ftp:x:83:83:ftp:/home/ftp:/bin/sh
nobody:x:99:99:nobody:/home:/bin/sh
sshd:x:103:99:Operator:/var:/bin/sh

按:切割,然后取第一列和第六列,-f能够指定获取的域数:

# cut -d: -f1,6 passwd
root:/root
proxy:/bin
operator:/var
ftp:/home/ftp
nobody:/home
sshd:/var

指定域数还能够这样写:

# cut -d: -f 1-4,6 passwd
root:x:0:0:/root
proxy:x:13:13:/bin
operator:x:37:37:/var
ftp:x:83:83:/home/ftp
nobody:x:99:99:/home
sshd:x:103:99:/var

awk的实现为:

# awk -F: 'BEGIN{OFS=":"}{print $1,$2,$3,$4,$6}' passwd    
root:x:0:0:/root
proxy:x:13:13:/bin
operator:x:37:37:/var
ftp:x:83:83:/home/ftp
nobody:x:99:99:/home
sshd:x:103:99:/var

可是假设要指定多个字符来切割的话,cut就不行了。cut仅仅支持单个分隔字符,二awk支持多个。

比方我们以“bin”分分隔:

# awk -F"bin" 'BEGIN{OFS=":"}{print $1}' passwd
root:x:0:0:root:/root:/
proxy:x:13:13:proxy:/
operator:x:37:37:Operator:/var:/
ftp:x:83:83:ftp:/home/ftp:/
nobody:x:99:99:nobody:/home:/
sshd:x:103:99:Operator:/var:/

使用cut:

# cut -d"bin" -f1 passwd                                      
cut: the delimiter must be a single character
Try 'cut --help' for more information.

这里能够看见cut命令的功能非常有限。

cut默认以tab键来切割,awk默认以空格或多个空格或tab键来切割:

# sed 's/:/\t/g' passwd | cut -f5
root
proxy
Operator
ftp
nobody
Operator
# sed 's/:/\t/g' passwd | awk '{print $5}'
root
proxy
Operator
ftp
nobody
Operator

cut能够剪切第随意字符。看似功能强大,但非常少有使用价值。

使用- c选项指定精确剪切数目。这样的方法需确切知道開始及结束字符。

通常不用这样的方法,除非在固定长度的域或文件名称上。
来看几个样例即可了:

# cut -c1,2,4 passwd
rot
prx
opr
ft:
noo
ssd
# cut -c5-9 passwd       
:x:0:
y:x:1
ator:
x:83:
dy:x:
:x:10

版权声明:本文博主原创文章。博客,未经同意不得转载。假设你认为你的实际物品,请点击以下“最佳”。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116773.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 爬虫(第一篇) IP代理池

    爬虫(第一篇) IP代理池搞虫子的都知道,IP代理是必要的方法,为什么?这个大家知道就好了,最近写了个IP代理池,给大家围观一下:开始。首先咱们找到一个免费的IP代理网站,读取人家的数据,但是注意了,注意频率别把人家给搞崩了第一:线程池,多个线程检测packagecom.*.util.thread;importorg.apache.log4j.Logger;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Ex

    2022年6月7日
    31
  • 301跳转与URL转发[通俗易懂]

    301跳转与URL转发[通俗易懂]301跳转与URL转发

    2022年10月9日
    1
  • android 的hook技术,Android Native Hook技术(一)

    android 的hook技术,Android Native Hook技术(一)原理分析ADBI是一个著名的安卓平台hook框架,基于动态库注入与inlinehook技术实现。该框架主要由2个模块构成:1)hijack负责将so注入到目标进程空间,2)libbase是注入的so本身,提供了inlinehook能力。源码目录中的example则是一个使用ADBI进行hookepoll_wait的示例。hijackhijack实现动态库注入功能,通过在目标进程插入d…

    2022年5月25日
    54
  • ADRC控制算法仿真(基于MATALB和Simulink)

    ADRC控制算法仿真(基于MATALB和Simulink)ADRC控制算法仿真(基于MATALB和Simulink)首先放仿真结果仿真文件下载首先放仿真结果首先是总的系统图.输入为正弦信号,控制对象的传递函数为:干扰信号为终值0.2的阶跃函数。仿真波形图如下:跟踪效果还不错。仿真文件下载。。。。。待审核…

    2022年5月19日
    49
  • RewriteCond指令格式

    RewriteCond指令格式RewriteCond指令格式语法:RewriteCondTestStringCondPattern[flags]RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。1、TestString是一个纯文本的字符串,除

    2022年6月13日
    27
  • 云大使推广中的常见热门问题「建议收藏」

    云大使推广中的常见热门问题「建议收藏」云大使推广中的常见热门问题

    2022年4月21日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号